[英]Error while connecting to Outlook inbox through EWS
Before posting here, I have gone through similar posts but could not find solution. 在这里发布之前,我经历了类似的帖子,但是找不到解决方案。 I am trying to read my Outlook inbox using EWS API but i keep getting 401 access denied error. 我正在尝试使用EWS API阅读我的Outlook收件箱,但我一直收到401访问被拒绝的错误。 Please help me. 请帮我。
I have set the user name, password and domain as per the API need, but don't know why it shows 401. 我已经根据API的需要设置了用户名,密码和域,但是不知道为什么它显示401。
public final class ExchangeServerConnection {
private static String exchangemailurl;
private static String userName;
//private static String password;
private ExchangeServerConnection() {
}
public static ExchangeService connectionEWS(String string) {
// TODO Auto-generated method stub
{
ExchangeService service = null;
try {
service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
ExchangeCredentials credentials = new WebCredentials("username@comp.com", "Uddsa#2k16", null);
service.setCredentials(credentials);
service.setUrl(new URI("https://email-domain.com/ews/Exchange.asmx"));
} catch (URISyntaxException e) {
}
return service;
}
}
}
Main class: 主班:
public class EmailUtil {
public static void main (String args[]) throws Exception{
ExchangeService service = ExchangeServerConnection.connectionEWS("Uaua#2k16");
System.err.println("Connections has been set up");
FolderView view1 = new FolderView(EWSConstants.TEN.getNumber());
System.err.println("1");
// ExtendedPropertyDefinition isHiddenProp = new ExtendedPropertyDefinition(EWSConstants.PRODDEF.getNumber(),
// MapiPropertyType.Boolean);
System.err.println("2");
//PropertySet pr1 = new PropertySet(BasePropertySet.IdOnly, FolderSchema.DisplayName, isHiddenProp);
// view1.setPropertySet(pr1);
System.err.println("3");
view1.setTraversal(FolderTraversal.Deep);
System.err.println("4");
SearchFilter searchFilter1 = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, EWSConstants.INBOX.getValue());
System.err.println("5");
searchFilter1 = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, searchFilter1);
System.err.println("6");
FindFoldersResults findFolderResults = service.findFolders(WellKnownFolderName.MsgFolderRoot, searchFilter1, view1);
System.err.println("7");
Folder folder = findFolderResults.getFolders().get(0);
System.err.println("8");
folder.load();
System.err.println(folder.getTotalCount());
int messageCount = folder.getTotalCount();
System.err.println("message count is "+messageCount);
}
}
Are the credentials properly formed? 凭证格式正确吗? It looks like you are trying to connect with an email address rather that a user / domain pair. 看来您正在尝试连接电子邮件地址,而不是用户/域对。 Does it help to change 有助于改变吗
ExchangeCredentials credentials =
new WebCredentials("username@comp.com", "*pass*", null);
to 至
ExchangeCredentials credentials =
new WebCredentials("username", "*pass*", "comp.com");
or 要么
ExchangeCredentials credentials =
new WebCredentials("username", "*pass*", "*name.of.domain.the.exchange.server.is.on*");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.