symfony - Symfony 4:MailerInterface 无法在 SMTP 服务器上进行身份验证
问题描述
使用基本的 Symfony 4.4 示例来使用 MailerInterface,我在我的.env
文件中设置了这个 MAILER_DSN:
MAILER_DSN=smtp://email@example.com:123456@smtp.example.com:587
或者这个(无端口):
MAILER_DSN=smtp://email@example.com:123456@smtp.example.com
我收到此错误:
无法使用以下身份验证器在用户名“email@example.com”的 SMTP 服务器上进行身份验证:LOGIN、PLAIN
我的服务器需要端口 587 上的 STARTTLS,但我不知道如何使用此 DSN 格式指定它。
解决方案
对我来说,它在 DSN 中指定端口 (587) 时起作用,邮件组件正确识别并使用了 STARTTLS。您的示例中可能棘手的是您需要转义@
in email@example.com
with %40
,因此您的 DSN 将如下所示:
MAILER_DSN=smtp://email%40example.com:123456@smtp.example.com:587
任何特殊的 URI 字符都需要转义(就像urlencode
dos, so +
, @
, $
, #
, /
, :
, *
, !
),也许这就是它不起作用的原因。
推荐阅读
- docker - Laradock:每个项目的单独环境或多个项目的单个环境?
- c++ - 该程序是针对 Protocol Buffer 运行时库的 2.6.1 版本编译的,该版本与已安装的版本 (3.5.0) 不兼容
- swift - 如何将 URLRequest 转换为 Alamofire.URLConvertible
- powershell - 下载随机名称的文件并执行
- php - 在没有 find_in_set 的情况下,如何在 mysql 中以逗号分隔的字符串中存在单个数字
- c++ - 打算调用派生类的虚函数,却错误地调用了基类的虚函数。对象未切片
- python - pytest-xdist 线程对单例是否安全
- python - 在不阻塞 UI 的情况下启动 HTTP 服务器
- shell - 在 Emacs 中分析 shell 命令
- java - 如何在运行配置中容纳从 Eclipse 到 IntelliJ 的类路径用户条目