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)
我不确定你对你当前的包装器有多独立,但我只是使用亚马逊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)
双引号应该用于带空格的名称.