带有 javax.mail 配置问题的 SMTP 电子邮件

SMTP email with javax.mail config issues

我可以通过在控制台上输入以下命令从 linux 服务器发送电子邮件,没有任何问题:

mail -s"Test Subject" [email protected] < /dev/null

我尝试通过 Java 应用程序发送它,使用 javax.mail 通过:

1
2
3
4
5
6
7
8
9
10
11
public void sendMail() throws MessagingException
{
    final Properties p = new Properties();
    p.put("mail.smtp.host","localhost");
    final Message msg = new MimeMessage(Session.getDefaultInstance(p));
    msg.setFrom(new InternetAddress(from));
    msg.addRecipient(RecipientType.TO, new InternetAddress(to));
    msg.setSubject("Test");
    msg.setText(body);
    Transport.send(msg);
}

但我得到了一个

Causing: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1

错误,这是我需要更换的原因吗

p.put("mail.smtp.host","localhost");

我的服务器地址?如果是,我在哪里可以找到我应该放在那里的东西?

谢谢!


您的本地机器上是否有运行邮件服务器?

您是否已配置 sendmail 以将邮件路由到您的邮件服务器?

如果你运行 "mail -v ...",它应该会告诉你 mail 命令正在做什么来发送你的消息。

但是,是的,很可能,您希望将 JavaMail 配置为直接连接到您的邮件服务器,该服务器可能不在您的本地计算机上运行。您可以在 JavaMail 常见问题解答中找到更多帮助。