我尝试使用以下代码通过 EWS Java API 发送邮件。但我收到选择 NTLM 身份验证的错误。我只需要基本身份验证。如何指定身份验证类型。
ExchangeCredentials credentials = new WebCredentials("user", "pwd");
service.setCredentials(credentials);
try {
service.setUrl(new java.net.URI("https://url/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();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
请告诉我如何解决这个问题......:(
最佳答案
这取决于您的交换服务器的配置。 尝试使用可以在交换服务器上配置的不同用户名:
ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e6b6d7b6c5e7a71737f7770307d7173" rel="noreferrer noopener nofollow">[email protected]</a>","pass");
或
ExchangeCredentials credentials = new WebCredentials(Username,Password, domain);
或
ExchangeCredentials credentials = new WebCredentials("user", "pwd");
service.setCredentials(credentials);
就我而言,起作用的是用户名、密码、域方法。
关于java - 在 EWS Java API 代码中将身份验证设置为 Basic 以发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16478797/