背景
Symfony 4.3引入了一个新的邮件组件。
可以在这里查看:
- https://symfony.com/blog/new-in-symfony-4-3-mailer-component
- https://symfony.com/doc/4.4/mailer.html.
对于SMTP传输,已经确定ENV变量中的DSN格式如下:
MAILER_DSN=smtp://user:pass@smtp.example.com
问题
写DSN时如何处理用户和密码中的特殊字符?
假设凭据是:
username: alice@example.com
password: the:password:is:difficult
这样设置最有可能失败:
MAILER_DSN=smtp://alice@example.com:the:password:is:difficult@smtp.example.com
我该如何编码/转义内容?哪种DSN是正确的?
MAILER_DSN=smtp://some.name@gmail.com:mypassword@smtp.gmail.com
对于我的 Gmail 地址已经起作用了,但我没有在这里回复自己,因为我没有“任何字符的通用线索”。特别是我没有测试密码中的:
。只是对于“双 @”,我可以确认它起作用了。但是,嘿!我没有找到任何官方文档。我只是通过试错发现它可以工作。所以...我准备随时在没有事先通知的情况下发现它失败。 - Xavi Montero