简体   繁体   English

通过EWS连接到Outlook收件箱时出错

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM