у меня есть Сценарий PHP, который посылает электронное письмо HTML с приложенным изображением. Это работает beauifully, однако, я не могу заставить вложение отображаться в тэг
в почтовом корпусе. Прикрепленный файл называют , postcard.png
и исходное имя файла на сервере 4e60348f83f2f.png
. Я попытался дать URL изображения как различные вещи: cid:postcard.png
, cid:4e60348f83f2f.png
, postcard.png
, и 4e60348f83f2f.png
. Ничто не работает.
я думаю ключевая роль, которую я делаю, неправильно здесь, потому что это делает ее разделенным вложением вместо встроенного вложения, которое я могу использовать:
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="$fname" // i.e.: "postcard.png"
я попытался изменить его для использования CID, но я действительно не знаю, как сделать это, и это' не работало вообще:
Content-Transfer-Encoding: base64
Content-ID: <$fname> // i.e.: postcard.png
Вот полный код: (Это основано этот код из комментария в почте php ()
страница.)
Llary it's
the Llandllord!
";
$To = strip_tags($to);
$TextMessage =strip_tags(nl2br($comment),"
");
$HTMLMessage =nl2br($comment);
$FromName =strip_tags($name);
$FromEmail =strip_tags($email);
$Subject =strip_tags($subject);
$boundary1 =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
$boundary2 =rand(0,9)."-".rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
$filename1 = "4e60348f83f2f.png"; //name of file on server with script
$handle =fopen($filename1, 'rb');
$f_contents =fread($handle, filesize($filename1));
$attachment=chunk_split(base64_encode($f_contents));
fclose($handle);
$ftype ="image/png";
$fname ="postcard.png"; //what the file will be named
$attachments='';
$Headers =<<
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="$boundary1"
AKAM;
$attachments.=<< Mail sent!":" Mail not sent!
";
?>