Java Mail异常。无法连接到SMTP主机:localhost,port:25;

时间:2016-09-05 09:49:05

标签: java email ssl smtp javamail

我正在尝试从 java应用程序 发送电子邮件,我正在尝试使用SSL发送电子邮件。我一直收到错误

  

无法连接到SMTP主机:localhost,port:25;

当我尝试使用以下代码时。

Properties props = new Properties();
props.put("mail.smtps.auth", "false");
props.put("mail.smtps.host", host);
props.put("mail.smtps.socketFactory.port", "465");
props.put("mail.smtps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtps.starttls.enable", "true");
props.put("mail.transport.protocol", "smtps");

Session session = Session.getInstance(props);

但是如果我使用以下代码就可以了:

Properties props = new Properties();
props.put("mail.smtp.auth", "false");
props.put("mail.smtp.host", host);
props.put("mail.smtp.socketFactory.port", "25");
props.put("mail.transport.protocol", "smtp");

Session session = Session.getInstance(props);

变量host是一个ip地址,所以我觉得奇怪的是,当我没有连接时,错误表明我无法连接到端口25上的localhost 到localhost,端口不是25

我需要能够使用SMTPS SSL发送电子邮件,而不是SMTP。 我的代码中有什么问题吗?

2 个答案:

答案 0 :(得分:2)

由于您的所有媒体资源都被命名为mail.smtps.*,请确保将您的Transport实例设为下一个:

Transport transport = session.getTransport("smtps");

在尝试调试时,请考虑使用session.setDebug(true)切换到调试模式,以获得更详细的日志。

答案 1 :(得分:0)

您忘记设置smtp的端口:

props.put("mail.smtp.port", String.valueOf(port));

在此处查看房产信息: JavaMail summary