Не удается отправить электронную почту с помощью Java API EWS

Я использую EWS для отправки электронных писем на Exchange 2010 следующим образом:

ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials(email, password);
service.setCredentials(credentials);
service.setUrl(new java.net.URI("https://" + host
    + "/EWS/Exchange.asmx"));
service.setTraceEnabled(true);

EmailMessage msg = new EmailMessage(service);
msg.setSubject("Hello world!");
msg.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS Managed API."));
msg.getToRecipients().add("email");
msg.send();

Сообщение не доставляется в почтовый ящик, и я не знаю, в чем проблема. После того, как я включил трассировку, я получаю следующее:

<Trace Tag="EwsRequestHttpHeaders" Tid="1" Time="2012-10-14 11:13:46Z">
    POST /EWS/Exchange.asmx HTTP/1.1
    Content-type : text/xml; charset=utf-8
    Accept-Encoding : gzip,deflate
    Keep-Alive : 300
    User-Agent : ExchangeServicesClient/0.0.0.0
    Connection : Keep-Alive
    Accept : text/xml
</Trace>

<Trace Tag="EwsRequest" Tid="1" Time="2012-10-14 11:13:47Z">
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
    <soap:Header><t:RequestServerVersion Version="Exchange2010_SP1"></t:RequestServerVersion></soap:Header>
    <soap:Body><m:CreateItem MessageDisposition="SendOnly"><m:Items><t:Message><t:Subject>Hello world!</t:Subject><t:Body BodyType="HTML">Sent using the EWS Managed API.</t:Body><t:ToRecipients><t:Mailbox><t:EmailAddress>[email protected]</t:EmailAddress></t:Mailbox></t:ToRecipients></t:Message></m:Items></m:CreateItem></soap:Body>
    </soap:Envelope>
</Trace>

14/10/2012 01:13:48 م org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
    INFO: NTLM authentication scheme selected
    <Trace Tag="EwsResponseHttpHeaders" Tid="1" Time="2012-10-14 11:13:48Z">
    200 text/xml; charset=utf-8
    X-AspNet-Version : 2.0.50727
    X-EwsPerformanceData : RpcC=3;RpcL=15;LdapC=0;LdapL=0;
    Persistent-Auth : true
    Date : Sun, 14 Oct 2012 11:13:48 GMT
    Vary : Accept-Encoding
    Transfer-Encoding : chunked
    Content-Encoding : gzip
    Content-Type : text/xml; charset=utf-8
    X-Powered-By : ASP.NET
    Server : Microsoft-IIS/7.5
    Cache-Control : private
</Trace>

<Trace Tag="EwsResponse" Tid="1" Time="2012-10-14 11:13:48Z">
    <?xml version="1.0" encoding="utf-8"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header><h:ServerVersionInfo MajorVersion="14" MinorVersion="1" MajorBuildNumber="218" MinorBuildNumber="14" Version="Exchange2010_SP1" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:CreateItemResponseMessage ResponseClass="Success"><m:ResponseCode>NoError</m:ResponseCode><m:Items/></m:CreateItemResponseMessage></m:ResponseMessages></m:CreateItemResponse></s:Body>
    </s:Envelope>
</Trace>

Посоветуйте, как решить эту проблему.


person Mahmoud Saleh    schedule 14.10.2012    source источник
comment
Я также включил службу трассировки. - Как и где я могу увидеть журналы tarce для java ews api? Фрагмент кода будет полезен   -  person StackOverFlow    schedule 03.10.2018


Ответы (2)


Сервер обмена отвечает, что все в порядке:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo MajorVersion="14" MinorVersion="1" MajorBuildNumber="218" MinorBuildNumber="14" Version="Exchange2010_SP1" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <m:ResponseMessages>
        <m:CreateItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Items/>
        </m:CreateItemResponseMessage>
      </m:ResponseMessages>
    </m:CreateItemResponse>
  </s:Body>
</s:Envelope>

Вы должны проверить на стороне Exchange или спросить администратора сервера Exchange о том, что происходит (например, фильтрация спама или что-то еще), потому что с точки зрения кода и точки зрения запроса/ответа SOAP нет ничего плохого.

person Alex    schedule 17.10.2012
comment
не могли бы вы сказать мне, где проверить фильтрацию спама на сервере обмена? - person Mahmoud Saleh; 18.10.2012

          <t:Message>
            <t:Subject>Hello world!</t:Subject>
            <t:Body BodyType="HTML">Sent using the EWS Managed API.</t:Body>
            <t:ToRecipients>
              <t:Mailbox>
                <t:EmailAddress>[email protected]</t:EmailAddress>
              </t:Mailbox>
            </t:ToRecipients>
          </t:Message>

Пожалуйста, проверьте почтовый ящик [email protected] или поговорите с администратором Exchange, чтобы просмотреть почтовые очереди, фильтры, многое другое и т. д., которые могут помешать получению электронной почты. Ничего плохого в вашем опубликованном коде.

person sainiuc    schedule 23.10.2012