Symfony 5.3 Mailer无法正确读取.env环境变量配置问题咨询
问题解决方法
核心问题是.env文件内的环境变量引用语法错误,按以下方式修改即可:
- 原因1:
.env文件中引用其他已定义环境变量,必须使用${变量名}格式,你原配置直接写MAILER_USER会被识别为普通字符串,导致系统实际使用MAILER_USER作为用户名发起SMTP认证,自然返回认证失败错误。 - 原因2:不需要手动对用户名里的
@做URL编码,Symfony Mailer组件会自动处理DSN中用户名、密码段的特殊字符编码/解码逻辑,提前编码会导致最终取到的邮箱地址为编码后的格式,不符合RFC 2822规范触发报错。
正确的.env.local配置如下:
MAILER_USER='example@gmail.com' MAILER_PASSWORD='0000' # 使用${}格式引用变量即可 MAILER_DSN=gmail://${MAILER_USER}:${MAILER_PASSWORD}@default
如果你的邮箱密码包含+、/、:、@这类特殊字符,也直接写在MAILER_PASSWORD变量中即可,无需提前编码,组件会自动完成转义处理。
内容的提问来源于stack exchange,提问作者user3440145
相关产品推荐
相关产品推荐

