微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony Swiftmailer - 如果凭证中有特殊字符,AWS SES 凭证将不起作用

如何解决Symfony Swiftmailer - 如果凭证中有特殊字符,AWS SES 凭证将不起作用

我使用 AWS SES 通过 Symfony Swiftmailer 发送电子邮件。这工作正常。

我在同一台服务器上有第二个应用程序,我想在其中创建第二组凭据以限制风险。 IE。我们之前泄露了凭据,如果发生这种情况,我只希望 1 个应用程序受到影响。

对于我的第一个应用程序,我的凭据工作正常,但密钥很特殊,因为它只包含字母字符。我的第二组凭据包含“/”和“+”。

我一直在与 AWS 支持人员通话,他们向我展示了我可以发送电子邮件

  openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.ap-southeast-2.amazonaws.com:587 < SMTP.txt

其中 SMTP.txt 包含 base64 编码的凭据 (this method)

我需要在我的 .env 文件中编码我的凭据吗?

解决方法

documentation on Swift Mailer 警告您注意特殊字符:

如果用户名、密码或主机包含任何考虑的字符 URI 中的特殊字符(例如 +、@、$、#、/、:、*、!),您必须编码 他们。有关保留字符的完整列表,请参阅 RFC 3986 或使用 urlencode 函数对它们进行编码。

执行类似这样的命令以获取编码后的密码

<?php
    $plainpwd = "...Your password...";
    echo urlencode($plainpwd);
?>

并在您的 .env 配置中使用它。例如,

MAILER_URL=smtp://email-smtp.us-east-1.amazonaws.com:587?encryption=tls&username=YOUR_SES_USERNAME&password=YOUR_ENCODED_SES_PASSWORD

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。