Я пытаюсь отправить сырое электронное письмо с вложениями изображений через AmazonSES с использованием PHP. Он отлично работает, когда я отправляю электронное письмо на учетную запись gmail, но учетные записи hotmail получают пустые прикрепленные изображения. Другими словами, hotmail, похоже, распознает, что есть вложения, и эти вложения имеют правильное имя, которое я указал, просто они всегда пусты, размером 0 байт. Гуглинг не помогает ... Спасибо заранее!hotmail не получает содержимое вложения изображения
$amazonSES = new AmazonSES();
// if (empty($attach)==0) {
// $response = $amazonSES->send_email(AWS_SES_FROM_EMAIL,
// array('ToAddresses' => array($to)),
// array('Subject.Data' => $subject,'Body.Text.Data' => $messagein,)
//);
// } else {
$rstring = 'ajfas90lsjhntlen89y34oi598';
$message= "To: ".$to."\n";
$message.= "From: " . AWS_SES_FROM_EMAIL . "\n";
$message.= "Subject: " . $subject . "\n";
$message.= "MIME-Version: 1.0\n";
$message.= 'Content-Type: multipart/mixed; boundary="ARandomString'.$rstring.'"';
$message.= "\n\n";
$message.= "--ARandomString$rstring\n";
$message.= 'Content-Type: text/plain; charset="utf-8"';
$message.= "\n";
$message.= "Content-Transfer-Encoding: 7bit\n";
$message.= "Content-Disposition: inline\n";
$message.= "\n";
$message.= $messagein;
$message.= "\n\n";
$message.= "--ARandomString$rstring\n";
foreach ($attach as $attachment) {
// $message.= "Content-ID: \<[email protected]_IS_ADDED\>\n";
$message.= "Content-ID: \<". md5(uniqid(rand(), true)) ."@biomechanico.com\>\n";
$message.= 'Content-Type: application/zip; name="shell.zip"';
$message.= "\n";
$message.= "Content-Transfer-Encoding: base64\n";
$message.= 'Content-Disposition: attachment; filename="' . $attachment["name"] . '"';
$message.= "\n" . base64_encode(file_get_contents($attachment["file"])) . "\n";
$message.= "--ARandomString$rstring\n";
}
$response = $amazonSES->send_raw_email(array(
'Data'=> base64_encode($message)),
array('Source'=>AWS_SES_FROM_EMAIL, 'Destinations'=> $to));
Они решили мою проблему, спасибо. Я пытался использовать PHPmailer, но не мог понять, как заставить его работать с амазонами. Еще раз спасибо – nbunderson
@nbunderson Вам, вероятно, нужно вызвать что-то вроде ['getSentMIMEMessage'] (http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#method_getSentMIMEMessage) и назначить полученную строку' $ message'. –