Springboot项目邮件无法发送问题(因为阿里云禁用了25端口)

    科技2022-07-21  108

    之前我的项目发邮件都是在本地使用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
    Processed: 0.009, SQL: 8