我正在尝试从 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
。
我的代码中有什么问题吗?
答案 0 :(得分:2)
由于您的所有媒体资源都被命名为mail.smtps.*
,请确保将您的Transport
实例设为下一个:
Transport transport = session.getTransport("smtps");
在尝试调试时,请考虑使用session.setDebug(true)
切换到调试模式,以获得更详细的日志。
答案 1 :(得分:0)