【问题标题】:SMTP email with javax.mail config issues带有 javax.mail 配置问题的 SMTP 电子邮件
【发布时间】:2016-04-02 02:14:48
【问题描述】:

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

mail -s "测试主题" testemail@gmail.com /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");

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

谢谢!

【问题讨论】:

    标签: smtp jakarta-mail sendmail


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我在一个我正在进入的盒子里做这个。 "mail -s "Test Subject" testemail@gmail.com
    • 你没有回答我的任何问题。你试过运行“mail -v ...”吗?
    • 对不起,我想我不清楚。我的意思是将“-v”选项添加到您指定的所有其他选项和参数中,即“mail -v -s "Test Subject" testemail@gmail.com
    • 感谢您的消息,我收到空消息正文;希望没问题 邮件传递状态报告将被邮寄到 。这正常吗?
    • 澄清一下,您实际上是在您的邮箱中接收这些测试邮件,对吧?通常我希望看到 SMTP 协议交换,但如果你没有得到它,那么我不知道你的邮件系统是如何配置的。此测试的目的是确定“mail”命令如何将邮件发送到 Gmail。由于我们没有获得该信息,您不妨返回并change your Java program to talk to Gmail directly
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2017-12-23
    相关资源
    最近更新 更多