gpt4 book ai didi

PHP Amazon SES v3 - 缺少必需的 header 'From'

转载 作者:可可西里 更新时间:2023-11-01 13:37:35 26 4
gpt4 key购买 nike

我必须将我的 PHP Amazon SES API 从版本 v2 升级到版本 v3。我在 v2 中使用的相同代码在 v3 中不起作用。

遵循代码:

//Send the message (which must be base 64 encoded):
$ses = new SesClient([
'credentials' => new Credentials(
$this->connection->getUsername(),
$this->connection->getPassword()
),
'region' => $this->connection->getServer(),
'version' => '2010-12-01'
]);

// the body message generated by PHP Mailer:
$message =
"Date: Tue, 6 Sep 2016 16:46:35 -0300\n" .
"To: some@email.com\n" .
"From: my_registered_email@at.amazon.com\n" .
"Reply-To: my_registered_email@at.amazon.com\n" .
"Subject: Email Subject\n" .
"Message-ID: <3a1db7d5ae6b610cab5898f0be4a00a3@machine-id>\n" .
"X-Mailer: PHPMailer 5.2.16 (https://github.com/PHPMailer/PHPMailer)\n" .
"MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative;\n" .
" boundary=\"b1_3a1db7d5ae6b610cab5898f0be4a00a3\"\n" .
"Content-Transfer-Encoding: 8bit\n" .
"\n" .
"This is a multi-part message in MIME format.\n" .
"\n" .
"--b1_3a1db7d5ae6b610cab5898f0be4a00a3\n" .
"Content-Type: text/plain; charset=us-ascii\n" .
"\n" .
"html text bodyOK\n" .
"\n" .
"\n" .
"--b1_3a1db7d5ae6b610cab5898f0be4a00a3\n" .
"Content-Type: text/html; charset=us-ascii\n" .
"\n" .
"<h1>html text body</h1>OK\n" .
"\n" .
"\n" .
"\n" .
"--b1_3a1db7d5ae6b610cab5898f0be4a00a3--\n";

$ses->sendRawEmail(
[
'RawMessage' => [
'Data' => base64_encode($message),
]
]
);

当我运行代码时出现错误:

PHP Fatal error:  Uncaught exception 'Aws\Ses\Exception\SesException' with message 'Error executing "SendRawEmail" on "https://email.us-east-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.us-east-1.amazonaws.com` resulted in a `400 Bad Request` response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue (client): Missing required header 'From'. - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Missing required header 'From'.</Message>
</Error>
<RequestId>9ea0eaa9-746a-11e6-a6cb-21af912ef7d9</RequestId>
</ErrorResponse>
'

但此代码适用于 API v2。

这里有什么问题吗?

最佳答案

我深入研究了 AWS SDK 源代码,我意识到我不需要对消息进行编码。

所以,我删除了 base64_encode 函数,现在一切正常了!!

最终代码为:

(...)
$ses->sendRawEmail(
[
'RawMessage' => [
'Data' => $message, // <-- Removed base64_encode from here
]
]
);

关于PHP Amazon SES v3 - 缺少必需的 header 'From',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39357182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com