Symfony Swiftmailer - 如果凭据中有特殊字符,则 AWS SES 凭据不起作用
Symfony Swiftmailer - AWS SES credentials do not work if special characters in credentials
我正在使用 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 警告您注意特殊字符:
If the username, password or host contain any character considered
special in a URI (such as +, @, $, #, /, :, *, !), you must encode
them. See RFC 3986 for the full list of reserved characters or use the
urlencode function to encode them.
执行如下所示的命令以获取编码后的密码
<?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
我正在使用 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 警告您注意特殊字符:
If the username, password or host contain any character considered special in a URI (such as +, @, $, #, /, :, *, !), you must encode them. See RFC 3986 for the full list of reserved characters or use the urlencode function to encode them.
执行如下所示的命令以获取编码后的密码
<?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