最新版Spring Boot下Log4j2配置SMTPAppender后无法发送邮件求助
问题修复步骤
- 第一处核心错误:你配置中所有对
AsyncSMTP的引用都被注释了,等于完全没启用邮件发送逻辑。先把控制器自定义Logger、Root Logger下被<!-- -->包裹的<AppenderRef ref="AsyncSMTP" />注释去掉。 - 若需全局所有error级日志触发邮件,仅在Root Logger下启用
AsyncSMTP引用即可;若仅需指定控制器包的日志触发邮件,仅在对应自定义Logger下启用引用,避免重复发送。 - Gmail的587端口SMTP必须开启STARTTLS加密,当前配置缺失对应参数,在
<Properties>标签内新增两个属性:<Property name="mail.smtp.starttls.enable">true</Property> <Property name="mail.smtp.ssl.trust">smtp.gmail.com</Property> - 目前Gmail不支持直接用账号登录密码做SMTP认证,必须先开启Gmail账号的两步验证,再生成应用专用密码,替换配置里的
smtpPassword字段的mypassword值。 - 当前SMTP Appender的
ThresholdFilter设置为只接收error级别日志,info、warn级别的日志不会触发发信,测试时请确保触发了LOGGER.error语句。 - 若仍发不出邮件,先把
smtpDebug参数改为true,控制台会输出SMTP连接、认证的全流程日志,可直接定位是网络不通、认证失败还是其他问题,排查完成后再改回false。
内容的提问来源于stack exchange,提问作者Pale Blue Dot
相关产品推荐
相关产品推荐

