簡體   English   中英

使用EWS協議進行Java API

[英]Using EWS protocol for Java API

我正在嘗試使用EWS protocol.Code代碼段發送電子郵件:

private String username = "xxx@xxx.com";
private String password = "*****";

public void testMethod() throws Exception {

    ExchangeService service = new ExchangeService(
            ExchangeVersion.Exchange2010_SP2);
    ExchangeCredentials credentials = new WebCredentials(username, password);
    service.setTraceEnabled(true);
    service.setCredentials(credentials);

    try {
        service.setUrl(new URI("https://someurl/ews/exchange.asmx"));
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    EmailMessage msg;
    try {
        msg = new EmailMessage(service);
        msg.setSubject("hello world");
        msg.setBody(MessageBody
                .getMessageBodyFromText("Sent using the EWS API"));
        msg.getToRecipients().add("test@test.com");
        msg.send();
    } catch (Exception e) {
        e.printStackTrace();
    }

當我執行上面的代碼時,我得到如下異常:

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. The request failed. The remote server returned an error: (401)Unauthorized
at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:74)
at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:158)
at 

我怎樣才能確保我有權連接URL? 可以通過cmd提示檢查嗎? 我該如何解決這個問題?

此外,如果有任何域正在使用EWS協議來測試pupose.I谷歌搜索並且知道gmail沒有使用它。還包括一些用於測試目的的示例。

謝謝

我知道它為時已晚,但沒有人回答,所以我發布了我的答案。我在嘗試使用此API發送電子郵件時也遇到了類似的問題。

package testEWS;
import java.net.URI;
import java.net.URISyntaxException;
import microsoft.exchange.webservices.data.EmailMessage;
import microsoft.exchange.webservices.data.ExchangeCredentials;
import microsoft.exchange.webservices.data.ExchangeService;
import microsoft.exchange.webservices.data.ExchangeVersion;
import microsoft.exchange.webservices.data.MessageBody;
import microsoft.exchange.webservices.data.WebCredentials;


public class Sendmail {

                public static void main(String[] args) throws Exception {
                                testMethod();
                                System.out.println("mail sent.. have fun");

                }


                public static  void testMethod() throws Exception {


                          ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
                        ExchangeCredentials credentials = new WebCredentials("milidFromWhichMailToBeSent@Host.com ", "Password");
                         service.setCredentials(credentials);

                    try {
                        service.setUrl(new URI("https://myexchange.XXXX.com/EWS/Exchange.asmx"));
                    } catch (URISyntaxException e) {
                        e.printStackTrace();
                    }

                    EmailMessage msg;
                    try {
                       msg = new EmailMessage(service);
                        msg.setSubject("hello world");
                        msg.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS API"));
                        msg.getToRecipients().add("testMail@hOST.com");
                        msg.send();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    System.out.println("Hello");
}
}

如果您想在本地試用,可以嘗試使用Microsoft Outlook。 Outlook還使用EWS API。 要從outlook獲取端點,請訪問以下鏈接: http//blogs.msdn.com/b/deva/archive/2011/12/02/how-to-get-the-ews-endpoint-url-from-outlook- 2007-2010.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM