SpringBoot整合邮箱的注意点
如果是整合微软邮箱,例如outlook,使用的是STARTTLS
Spring 的配置如下:
spring:
mail:
default-encoding: UTF-8
# 微软的邮箱是不用设置smtps的,是使用默认的smtp
# protocol: smtps
host: smtp.office365.com
port: 587
username: yourEmail@xxx.com
# 开启了MFA多重认证的,密码为应用密码,如需使用账号登录密码,则需要关闭多重认证
password: yourPassword
# 由于Office365邮件发送启用了STARTTLS的加密验证方式,所以需要通过spring.mail.properties的自定义属性来进行加密信息的相关配置。
properties:
mail:
# 开启邮件发送debug
debug: true
smtp:
# 仅设置该项开启STARTTLS
starttls:
enable: true
由于Office365邮件发送启用了STARTTLS的加密验证方式,所以需要通过spring.mail.properties的自定义属性来进行加密信息的相关配置:可以查看源码(com.sun.mail.smtp.SMTPTransport中的useStartTLS属性)
其他邮箱,一般是SSL
spring:
mail:
default-encoding: UTF-8
protocol: smtps
host: smtp.xxx.com
port: 465
username: xxx@xxx.com
password: yourPassword
properties:
mail:
# 开启邮件发送debug
debug: true
微软企业邮箱,有的时候开启了MFA多重认证后,需要使用应用密码进行验证而不是账号登录密码,其中应用密码的新增入口会找不到,这时需要联系微软,或者第三方购买商(这里巨坑,希望您不会遇到)
注意:MFA的开启有两个地方,企业设置全局MFA开启的(优先级最高),在用户的对应的是否开启MFA都不会生效,所以如果全局开启了,要禁用某个账号的MFA,则需要将全局的关掉,分别在对应的账号上设置开启还是关闭
简单记录一下这个历程,现在还未拿到应用密码,因为要求开启MFA,所以巨坑,**&@%&#%@#@&#@