Amazon SES RawMessage:缺少必需的标题“发件人”

* def schema = {}
* schema.myvariable = 1
* match schema == { myvariable: 1 }

# dynamic key name
* def name = 'myvariable'
* def schema = {}
* schema[name] = 1
* match schema == { myvariable: 1 }

我正在尝试通过Amazon SES发送RawMessage,但是我得到了:

电子邮件未发送。错误消息:缺少必需的标题“发件人”。

我使用的发件人已经过验证,我的Amazon SES已激活(不在sendbox中)。

我需要作为RAW消息发送,以便为我要发送的电子邮件创建退订选项。正如我从文档中读到的那样,它必须是原始电子邮件才能添加此参数。谢谢!

orcking080 回答:Amazon SES RawMessage:缺少必需的标题“发件人”

您必须对消息进行base64编码:

$result = $client->sendRawEmail([
    'RawMessage' => [
        'Data' => base64_encode($messages)
    ]
]);
,

由于您使用的是AWS Ses,因此可以这样操作:

    define('SENDER','Your name<a@a.com>');
    define('RECIPIENT','b@b.com');
    define('CCLIST','c@c.com');

    define('REGION','your region');

    define('SUBJECT','Your subject goes here');
    $bodytext = "<h2>Your body goes here.</h2>" . PHP_EOL;
    $bodytext .= "<p>Append as many rows as you want</p>";

    define('BODY',$bodytext);


    $client = SesClient::factory(array(
            'version'=> 'latest','region' => 'your region'
    ));

    $request = array();
    $request['Source'] = SENDER;
    $request['Destination']['ToAddresses'] = array(RECIPIENT);
    $request['Destination']['CcAddresses'] = array(CCLIST);
    $request['Message']['Subject']['Data'] = SUBJECT;
    $request['Message']['Body']['Html']['Data'] = BODY;

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

    } catch (Exception $e) {
        echo("The email was not sent. Error message: ");
        echo($e->getMessage()."\n");
    }
本文链接:https://www.f2er.com/3053934.html

大家都在问