附加Amazon SES服务的自定义电子邮件标头

Mac*_*Mac 2 php email-headers amazon-ses

我正在使用Amazon SES发送电子邮件,我想在它发送给用户之前附加一个自定义标头,因为我正在创建一个代理电子邮件系统,用于回复我网站上的线程,因此ID保留为跟踪要通过电子邮件发布到哪个帖子.

我无法看到如何从Amazon SES的文档中附加自定义标题,除了这个页面解释了它们接受的标题但没有说明如何绑定它,我正在使用这个为PHP制作的SES包装器.

我希望能够注入一个以X-Thread-ID数字命名的标题,我将如何继续使用它?


编辑:对于杰克的回答,我无法正确发送电子邮件,它一直给我这个错误:

CFSimpleXML Object
(
    [Type] => Sender
    [Code] => InvalidParameterValue
    [Message] => Missing final '@domain'
)
Run Code Online (Sandbox Code Playgroud)

我的标题就像这样

To: myemail@hotmail.co.uk <YES>
From: developer@mysite.com <MySite>
X-Thread-ID: 429038
Run Code Online (Sandbox Code Playgroud)

Ja͢*_*͢ck 6

我不确定你对你当前的包装器有多独立,但我只是使用亚马逊SDK for PHP附带的那个,可以从亚马逊本身下载.

$ses = new AmazonSES(AWS_ACCESS_KEY, AWS_ACCESS_SECRET);

$headers = join("\r\n", array(
    "To: $recipient",
    "X-Thread-ID: 123test",
));
$body = "<html><body> ... </body></html>";

$res = $ses->send_raw_email(array(
    'Data' => chunk_split(base64_encode("$headers\r\n\r\n$body"))
), array());

// check API result
if (!$res->isOK()) {
    throw new Exception(print_r($res->body->Error, true));
}
// inspect message id
$messageId = (string)$res->body->SendRawEmailResult->MessageId
Run Code Online (Sandbox Code Playgroud)

编辑

此电子邮件标题:

To: myemail@hotmail.co.uk <YES>
Run Code Online (Sandbox Code Playgroud)

应该(反转):

To: YES <myemail@hotmail.co.uk>
Run Code Online (Sandbox Code Playgroud)

双引号应该用于带空格的名称.