0

我在一家公司实习,公司里的每个人都使用 Outlook 邮件。我想不出一种从收件箱中阅读电子邮件的方法。

让我谈谈我的项目。我正在为邮件使用 JavaMail API。

我的第一个任务 - 使用我已成功完成的提醒系统从 java 程序发送邮件,使用主机、协议、用户名和无密码。无需输入密码,因为如果我尝试输入密码,它就会停止工作。它只有在没有密码的情况下才能工作。

所以基本上,我可以使用公司中的其他员工使用电子邮件地址作为“发件人”发送电子邮件,因为不需要输入密码,只能从 java 程序中输入。

我的第二个任务 - 阅读邮件主题和发件人详细信息并执行一些任务...

没有密码可以进入,但是

Store store = session.getStore("smtp"); 
//I tried with imap, pop3, but everything gives error "No Such Provided"


store.connect("email@domain.co.uk", "PASSWORD");

store.connect() 不允许我使用没有密码的方法。

该软件将使用一个新的电子邮件地址,该地址与用户 Outlook 中的地址不同,但为了进行测试,我首先使用我的电子邮件地址,因为该软件将被不同的用户/计算机使用。

如果我尝试这种方式

session.getStore("imaps");
store.connect("host","username","password");


Error:
DEBUG: getProvider() returning 
javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc]

DEBUG: mail.imap.fetchsize: 16384
DEBUG: mail.imap.statuscachetimeout: 1000
DEBUG: mail.imap.appendbuffersize: -1
 DEBUG: mail.imap.minidletime: 10

DEBUG: trying to connect to host "host", port 993, isSSL true

javax.mail.MessagingException: Connection refused: connect;
 nested exception is:


java.net.ConnectException: Connection refused: connect
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:618)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)

at TestMail.InboxReader.main(InboxReader.java:52)
    Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570)
at 
    com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:284)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:227)
at com.sun.mail.iap.Protocol.<init>(Protocol.java:109)
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:104)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:585)
... 3 more
   Java Result: 2
4

2 回答 2

1

使用 Exchange Web 服务 (EWS) API 与 Exchange Server 无缝集成。引用 MS 网站

EWS 提供对通过 Microsoft Office Outlook 提供的大部分相同数据的访问。

EWS 基础 - http://msdn.microsoft.com/en-us/library/exchange/dd877045(v=exchg.140).aspx EWS Java API - http://archive.msdn.microsoft.com/ewsjavaapi

于 2013-02-08T19:11:45.157 回答
0

需要更多细节...

请参阅JavaMail FAQ并在失败时发布调试输出。此外,您使用的确切代码可能会有所帮助。

您可以使用 JavaMail 附带的代码对其进行测试,这样您就可以确定问题出在您的代码中还是其他问题上。请参阅 JavaMail 下载包中包含的 msgshow.java 演示程序。

于 2013-02-07T21:16:42.810 回答