我通过Amazon SES成功发送了很多邮件…然而,它们中的一些由于包含加号字符(加号寻址)而失败。
邮件是这样发送的:
"Key" => "MyKey",
"Secret" => "MySecret",
"Region" => "us-east-1",
"Service" => "email",
"Host" => "email.us-east-1.amazonaws.com",
"Params" => [
"Action" => "SendEmail",
"Destination.ToAddresses.member.1" => "someone+testing@gmail.com",
"Message.Subject.Data" => urlencode("Test Message"),
"Message.Body.Html.Data" => urlencode("<p>Hello, this is a test.</p>"),
"Source" => urlencode("sender@example.com")
Amazon SES的响应是:
InvalidParameterValue
本地地址包含控件或空白
我知道我可以去掉"+testing"从地址,但不相信这是正确的做法。我在Amazon的文档中找不到任何提到支持加号寻址或如何转义加号字符的内容。
还有人解决这个问题吗?
在AWS地址中可以使用+。+字符被称为VERP -可变包络返回路径->它们完全按照预期工作(https://docs.aws.amazon.com/ses/latest/dg/send-email-concepts-email-format.html)
你确定其他部分没有使用一些奇怪的字符吗?
您可以尝试将编码更改为UTF-8:以下是SES的一些示例。https://docs.aws.amazon.com/ses/latest/dg/send-email-raw.html