[英]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.