2016-05-16 2 views
0

Мой код для отправки почтызапрос неудачу при попытке отправить почту на Exchange Server с помощью веб-служб Exchange

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
ExchangeCredentials credentials = new WebCredentials("[email protected]","pwd"); 
service.setCredentials(credentials); 
service.setUrl(new URI("C:/shiva/Services.asmx")); 
EmailMessage msg = new EmailMessage(service); 
msg.setSubject("Hello world!"); 
msg.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS Java API.")); 
msg.getToRecipients().add("[email protected]"); 
msg.send(); 

Я получаю следующее сообщение об ошибке, когда я побежал выше кода

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. Protocol C isn't supported for service request. 
    at microsoft.exchange.webservices.data.core.request.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:74). 
. 
. 
. 
. 
Caused by: microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException: Protocol C isn't supported for service request. 
    at microsoft.exchange.webservices.data.core.ExchangeServiceBase.prepareHttpWebRequestForUrl(ExchangeServiceBase.java:322). 
. 
. 
. 

Пожалуйста, помогите меня.

+0

Да, @Bill Шеннон. Спасибо. –

ответ

1

Проблема заключается в том, что вы не указываете на URI, где находится экземпляр веб-служб Exchange (EWS) , размещенный. Вместо того, чтобы ваш просто указывает на местоположение в файловой системе:

service.setUrl(new URI("C:/shiva/Services.asmx")); 

Так URI-класс пытается интерпретировать C:/ как протокол, который не будет работать в этой ситуации.

Вам нужно будет сделать следующее: Учредить свой EWS-экземпляр на веб-сервере (обычно это Microsoft IIS в этом случае. Я думаю, вам понадобится Windows Server с настройкой необходимых ролей сервера и т. Д. .). И пусть ваш код указывает на этот URI:

service.setUrl(new URI("http://localhost:1234/someWhere/Services.asmx")); 
+0

Спасибо @khlr. Это сработало. –

+0

У вас есть локальный экземпляр? – khlr

+0

Я использовал сервер моей организации. –