之前我的项目发邮件都是在本地使用25端口号来发送,但是由于需要部署迁移至阿里云,但是阿里云是禁止25端口号,所以我们需要使用465端口号来发送邮件。
各端口号的协议,借鉴:https://www.douban.com/note/397681162/
25端口号协议是SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),465端口号协议是SMTPS(SMTP-over-SSL),较SMTPS协议发送邮件更安全,防止邮件别黑客截取泄漏,还可实现邮件发送者抗抵赖功能。
代码改造过程中,除了要将原25端口号改为456端口号外,还需对465的协议进行配置。
application.properties配置文件可以设置如下:
Use port 465 instead of the default port 25
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.ssl.enable=true
我的配置文件(properties),我就加了下面两行就可以了,如下
如果配置到程序里,如下:
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.socketFactory.fallback", "false");
mailSender.setJavaMailProperties(properties);
如果是配置到配置文件(yaml)中,如下:
spring:
mail:
host: xx
port: xx
username: xx
password: xx
properties:
mail:
transport:
protocol: smtp
smtp:
auth: true
socketFactory:
class: javax.net.ssl.SSLSocketFactory
fallback: false