【发布时间】:2016-06-12 16:28:12
【问题描述】:
我正在尝试连接到本地托管的电子邮件 POP3 收件箱并在邮箱中显示电子邮件,但我不断收到错误消息:
线程“主”javax.mail.MessagingException 中的异常:连接失败; 嵌套异常是:
java.net.ConnectException:连接被拒绝
在 com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:209)
在 javax.mail.Service.connect(Service.java:295)
在 javax.mail.Service.connect(Service.java:176)
在 com.kami.utils.MailClient.checkInbox(MailClient.java:33)
在 com.kami.Main.main(Main.java:38)
我的班级是这样的:
public class MailClient {
private String host;
private String username;
private String password;
private String provider;
protected Session session;
public MailClient() {
Properties props = new Properties();
this.host = "localhost";
this.username = "unix-user";
this.password = "unix-password";
this.provider = "pop3";
this.session = Session.getDefaultInstance(props, null);
}
public void checkInbox() throws MessagingException, IOException {
Store store = session.getStore(provider);
store.connect(host, username, password); //This is line 33
Folder inbox = store.getFolder("inbox");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
for(Message message : messages){
System.out.println(message.getReceivedDate());
System.out.println(message.getSubject());
}
inbox.close(true);
store.close();
}
}
它是本地托管的电子邮件服务器,使用 Dovecot IMAP/POP3 服务器版本 2.2.9 和 Postfix 邮件服务器 Postfix 版本 2.11.0
【问题讨论】:
-
AFAIK java pop3 实现适用于连接的邮箱。您是否正在尝试连接已下载的 pop3 邮箱?
-
连接到本地托管的,就像我可以从它发送电子邮件一样:
props.put("mail.smtp.host", "localhost"); -
本地托管让我很困惑。你有一个在你的 linux 机器上运行的邮件服务器(pop3/pop3s 服务正在运行)吗?
-
正确,Dovecot IMAP/POP3 服务器版本 2.2.9 和 Postfix 邮件服务器 Postfix 版本 2.11.0
-
Hans Poo 的回答在这种情况下是有意义的。如果 IP 地址和端口正确,请检查您的代码。
标签: java email jakarta-mail pop3 dovecot