解决Could not connect to SMTP host: smtp.qq.com, port: 465,respons

在使用javamail进行定时邮件时出现了这个错误Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 原来我把端口改成了465.

25端口(SMTP):25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。

465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。

所以我需要添加以下代码才行:

  1. Properties properties = new Properties();
  2. properties.setProperty("mail.smtp.auth", "true");//开启认证
  3. properties.setProperty("mail.debug", "true");//启用调试
  4. properties.setProperty("mail.smtp.timeout", "1000");//设置链接超时
  5. properties.setProperty("mail.smtp.port", "465");//设置端口
  6. properties.setProperty("mail.smtp.socketFactory.port", "465");//设置ssl端口
  7. properties.setProperty("mail.smtp.socketFactory.fallback", "false");
  8. properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  9. javaMailSender.setJavaMailProperties(properties);