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

时间:2016-04-01 15:54:42

标签: smtp javamail sendmail

我可以通过在控制台上键入以下命令从Linux服务器发送电子邮件,而不会出现任何问题:

  

mail -s"测试对象" testemail@gmail.com<的/ dev / null的

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

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);
}

但是我得到了

  

导致:com.sun.mail.util.MailConnectException:无法连接到主机,端口:localhost,25;超时-1

错误,这是因为我需要更换

  

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否在本地计算机上运行了邮件服务器?

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

如果您运行" mail -v ..."它应该告诉你邮件命令正在发送你的消息。

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