我是邮件系统概念和Java的新手 . 我有这个要求直接连接到Microsoft Exchange服务器并使用java apis从它读取邮件 . 我已经尝试过其他人提到的许多解决方案,但似乎没有任何效果 . 我已经尝试使用Exchange Web服务api 1.2但它在url autodiscovey方法中说错误 . 当尝试使用javamail api连接ot ms exchange存储时,它表示连接被拒绝 . 以下是具有相应例外的代码 .

import java.util.*;
    import javax.mail.*;

    public class ReadingEmail {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imaps");
        try {
            Session session = Session.getInstance(props, null);
            Store store = session.getStore();

            store.connect("outlookgt.nam.nsroot.net", "ar34905@imcnam.ssmb.com","pass");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            Message msg = inbox.getMessage(inbox.getMessageCount());
            Address[] in = msg.getFrom();
            for (Address address : in) {
                System.out.println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg.getContent();
            BodyPart bp = mp.getBodyPart(0);
            System.out.println("SENT DATE:" + msg.getSentDate());
            System.out.println("SUBJECT:" + msg.getSubject());
            System.out.println("CONTENT:" + bp.getContent());
        } catch (Exception mex) {
            mex.printStackTrace();
        }
        }
    }



        javax.mail.MessagingException: Connection refused: connect;
          nested exception is:
            java.net.ConnectException: Connection refused: connect
            at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670)
            at javax.mail.Service.connect(Service.java:295)
            at javax.mail.Service.connect(Service.java:176)
            at com.citi.ReadingEmail.main(ReadingEmail.java:14)

尝试使用Exchange Web服务api 1.2时:

ExchangeService service = new  ExchangeeService(ExchangeVersion.Exchange2010_SP2);
    //  System.out.println(ExchangeVersion.Exchange2010_SP2);

        ExchangeCredentials credentials = new WebCredentials("ar34905@imcnam.ssmb.com",
                            "password");
        service.setTraceEnabled(true);

        service.setCredentials(credentials);
        service.autodiscoverUrl("ar34905@imcnam.ssmb.com" );
        //service.setUrl(new java.net.URI("ar34905@imcnam.ssmb.com" ));

       // EmailMessage message = EmailMessage.bind(service, new ItemId(uniqueId));
        EmailMessage msg= new EmailMessage(service);
        msg.setSubject("Hello world!");
        msg.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS Java API."));
        msg.getToRecipients().add("aditya.raman@citi.com");
        msg.send();

例外情况是:

Exception in thread "main" <Trace Tag="AutodiscoverConfiguration" Tid="1" Time="2015-04-21 14:07:04Z">
No matching Autodiscover DNS SRV records were found.
</Trace>

microsoft.exchange.webservices.data.AutodiscoverLocalException: The Autodiscover service couldn't be located.
    at microsoft.exchange.webservices.data.AutodiscoverService.internalGetLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.getLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.internalGetLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.getUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.getAutodiscoverUrl(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.autodiscoverUrl(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.autodiscoverUrl(Unknown Source)
    at com.citi.Mail.main(Mail.java:47)

任何人都可以帮我连接和阅读邮件吗?主机和用户名已从microsoft outlook获取 .