我正在寫一個郵件插件在php用戶信息,我想要集成多個圖像在base64編碼,問題是,只有第一個圖像被集成。任何解決方案所有的路徑都是正確的,並且html是成功集成的。如果我更換集成在代碼中的圖像的順序,Mail中顯示的圖像也會更改,因此它們都可用,但不會同時顯示。PHP的問題包括多個圖像的HTML郵件
<?php
$ImageLocation ="images/logo.gif";
$ImageLocationRight ="images/right2.jpg";
$ImgName = "logo.gif";
$ImgNameRight = "right2.jpg";
$MailFrom="Tool";
$MailFromAdr="[email protected]";
$MailTo ="[email protected]";
$MailToSubject = "$subject";
$CID = md5(uniqid (rand(), 1));
$mime_boundary = "" . md5(uniqid(mt_rand(), 1));
$Header= "From:$MailFrom<$MailFromAdr>\n";
$Header.= "X-mailer: PHP/" . phpversion(). "\n";
$Header.= "MIME-Version: 1.0\n";
$Header.= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\n";
$MailBody = "--".$mime_boundary."\n";
$MailBody.= "Content-Type: Text/HTML; charset=iso-8859-1$EOL";
$MailBody.= "Content-Transfer-Encoding: quoted-printable\n\n";
$MailBody.= file_get_contents("../mail/mail.htm");
$MailBody.= "\n\n";
$MailBody.= "--".$mime_boundary."\n";
$MailBody= str_replace("images/logo.gif", "cid:$CID.$ImgName", $MailBody);
$MailBody= str_replace("images/right2.jpg", "cid:$CID.$ImgNameRight", $MailBody);
$fpr = fopen ($ImageLocationRight, "rb");
$strr = fread ($fpr, filesize ($ImageLocationRight));
$datar = chunk_split(base64_encode($strr));
$content.= "Content-Type: image/jpg\n";
$content.= "Content-ID: <$CID.$ImgNameRight>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$ImgNameRight\"\n\n";
fclose($fpr);
$content.= $datar."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."--\n";
$fp = fopen ($ImageLocation, "rb");
$str = fread ($fp, filesize ($ImageLocation));
$data = chunk_split(base64_encode($str));
$content = "";
$content.= "Content-Type: image/gif\n";
$content.= "Content-ID: <$CID.$ImgName>\n";
$content.= "Content-Transfer-Encoding: base64\n";
$content.= "Content-Disposition: inline; filename=\"$ImgName\"\n\n";
fclose($fp);
$content.= $data."\n";
$MailBody.= $content;
$MailBody.= "--".$mime_boundary."--\n";
echo $MailBody;
mail($MailTo, $MailToSubject, $MailBody, $Header);
?>
只是一個建議,如果你發送了很多郵件,你可能想使用一個預先存在的郵件庫來做所有繁重的工作。我使用swiftMail很多。 – JohnP 2011-04-01 08:20:54
請不要HTML郵件!哎呀! – 2011-05-30 00:26:22