我正在尝试连接到我的gmail收件箱以通过Java Application读取消息。我正在使用..
以下是我的代码: 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)
在ReadMail.main(ReadMail.java:10)
但是,我可以使用SMTP,Transport.send()和相同的Gmail帐户通过Java发送电子邮件。但无法阅读电子邮件。 什么可以解决方案?
答案 0 :(得分:1)
IMAP在另一个端口(非安全端口为143,安全端口为993)上发送邮件(25),我怀疑它已被阻止。你可以在那个端口上telnet到那个服务器,例如。
telnet imap.gmail.com {port number}
这表明你是否有网络连接。