JavaMail store.connect() 超时 - 无法通过 Java 读取 gmail 收件箱



我正在尝试连接到我的gmail收件箱以通过Java应用程序阅读邮件。我正在使用..

  • jdk1.6.0_13
  • javamail-1.4.3 libs - (mail.jar, mailapi.jar, IMAP.jar)

以下是我的代码:MailReader.java

import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
public class MailReader
{
    public static void main(String[] args)
    {
        readMail();     
    }
    public static void readMail()
    {
        Properties props = System.getProperties();
        props.setProperty("mail.store.protocol", "imaps");
        try
        {
            Session session = Session.getDefaultInstance(props, null);
            Store store = session.getStore("imaps");
            store.connect("imap.gmail.com", "myEmailId@gmail.com", "myPwd");
            System.out.println("Store Connected..");
            //inbox = (Folder) store.getFolder("Inbox");
            //inbox.open(Folder.READ_WRITE);
            //Further processing of inbox....
        }
        catch (MessagingException e)
        {
            e.printStackTrace();            
        }
    }
}

我希望连接商店,但调用 store.connect() 永远不会返回,我得到以下输出:


javax.mail.MessagingException: 连接超时;
嵌 套 例外情况是:
java.net.ConnectException: 连接超时
在 com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:441)
在 javax.mail.Service.connect(Service.java:233)
在 javax.mail.Service.connect(Service.java:134)
在 ReadMail.readMail(ReadMail.java:21)
at ReadMail.main(ReadMail.java:10)

但是,我可以使用SMTP,Transport.send()和相同的gmail帐户通过Java发送电子邮件。但无法阅读电子邮件。有什么解决办法?

IMAP将不同的端口(143表示不安全,993表示安全)工作到sendmail(25),我怀疑它被阻止了。您能否在该端口上远程登录到该服务器,例如

telnet imap.gmail.com {port number}

这将指示您是否具有网络连接。

相关内容

  • 没有找到相关文章

最新更新