1

Amazon SES サービスでメールシステムをセットアップしようとしています。パラメータで電子メールアドレスのみを使用すると、すべてが正常に機能し"Source"ます。名前を追加しようとすると、403 ForbiddenHTTP エラーが発生します。

私の PHP コードでは、AWS SDK を使用しています。

$client = Aws\Ses\SesClient::factory(array(
    'key'    => 'MYAWSKEYXXXXXXXXXX',
    'secret' => 'MYAWSSECRETXXXXXXXXXXX',
    'version'=> 'latest',
    'region' => 'us-east-1'
));

$request = array();
$request['Source'] = "sender@example.com";
$request['Destination']['ToAddresses'] = array("receiver@example.com");
$request['Message']['Subject']['Data'] = 'Mail Subject';
$request['Message']['Body']['Html']['Data'] = 'mail body in HTML: <b>Hello!</b>';

try {
     $result = $client->sendEmail($request);
     $messageId = $result->get('MessageId');
     $message = "Email sent! Message ID: $messageId";

} catch (Exception $e) {
     $message = "The email was not sent. Error message: ";
     $message .= $e->getMessage();
}

AWS コンソールで正しいポリシーを使用して E メール ソースを正しく設定したため、このコードはうまく機能します。したがって"sender@example.com"、この例では、電子メールを正しく送信できます。

次に、パラメーターに名前を追加しようとして"Source"も、成功しません。私は試した:

$request['Source'] = "My Name <sender@example.com>";

また

$request['Source'] = "'My Name' <sender@example.com>";

また

$request['Source'] = "'My Name'<sender@example.com>";

また

$request['Source'] = "'My Name <sender@example.com>'";

また

$request['Source'] = '"My Name" <sender@example.com>';

また

$request['Source'] = '"My Name"<sender@example.com>';

また

$request['Source'] = '"My Name <sender@example.com>"';

上記のいずれも機能しません。

sendEmail電子メール名でSES を使用する方法について何か考えがある人はいますか? this oneのように、ここで見たいくつかの回答は、単に機能しません。sendEmailPHP SDKを使用する必要があります。

4

0 に答える 0