【问题标题】:"From" missing in header using AWS SES Email API using AWS-SDK in PHP使用 AWS SES 电子邮件 API 在 PHP 中使用 AWS-SDK 的标头中缺少“发件人”
【发布时间】:2017-07-21 23:13:26
【问题描述】:

我正在尝试使用 Amazon SES 通过 AWS-SDK 和 sendRawEmail() 发送邮件(带或不带附件)。 但它总是会因为标题中缺少“From”错误而反弹。

代码如下:

$header .= "From: abc@abc.com \r\n ";
$header .= "To: def@def.com \r\n ";
$header .= "Reply-To: abc@abc.com \r\n ";
$header .= "Subject: Testing Attachments \r\n ";
$header .= "MIME-Version: 1.0 \r\n ";
$header .= "Content-Type: text/plain; charset=utf-8 \r\n ";
$header .= "Content-Transfer-Encoding: 7bit \r\n \r\n ";
$header .= "This is normal content \r\n ";




$result = $client->sendRawEmail(
                    array('RawMessage' => array('Data' => base64_encode($header)), 'Source' => 'abc@abc.com', 'Destinations' => array('def@def.com'), 'SourceArn' => 'arn:aws:ses:eu-west-1:1234:identity/abc@abc.com', 'FromArn' => 'arn:aws:ses:eu-west-1:1234:identity/abc@abc.com')
                );

如果我在sendRawEmail() 中没有给出“来源”、“目的地”,那么它会给出错误“发件人”标头缺失,并且如果给出这些参数,邮件会以相同的错误退回。

提前感谢您帮助我找到相同的解决方案。

【问题讨论】:

  • 可能不相关,但每个 \r\n 之前应该有 no 空格字符。消息末尾肯定应该没有。

标签: php amazon-web-services aws-sdk amazon-ses


【解决方案1】:

我在使用其他语言 SDK 时遇到了同样的问题。

base64_encode($header)

不要对其进行编码。删除base64_encode

【讨论】:

  • InvalidParameterValue (client): Nested group - Sender InvalidParameterValue Nested group 然后出现这个错误。
  • 谢谢,当我将 aws php sdk 从 v2 升级到 v3 时,删除 base64_encode() 对我有用。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 2011-08-07
  • 2020-10-20
  • 2017-11-11
  • 1970-01-01
  • 2014-12-31
相关资源
最近更新 更多