Php电子邮件-内联图像和2个附件

Php电子邮件-内联图像和2个附件,php,Php,我已经为这个脚本挣扎了5天了,我就是不能让它工作。我想用php邮件函数发送邮件。它需要有一个内联图像和两个附件。我得到的就是这样,它在Thunderbird中显示正确,但在Gmail客户端中,它将图像显示为附件,而不是消息正文。以下是我的代码: <?php $filename = "sharewood-lija-cjenik.xlsx"; $filename2 = "sharewood-lija-ponuda.pdf"; $inline = chunk_split(base64_enco

我已经为这个脚本挣扎了5天了,我就是不能让它工作。我想用php邮件函数发送邮件。它需要有一个内联图像和两个附件。我得到的就是这样,它在Thunderbird中显示正确,但在Gmail客户端中,它将图像显示为附件,而不是消息正文。以下是我的代码:

<?php

$filename = "sharewood-lija-cjenik.xlsx";
$filename2 = "sharewood-lija-ponuda.pdf";
$inline = chunk_split(base64_encode(file_get_contents('../img/sharewoodlija.png')));
$sep = sha1(date('r', time()));

$uid = md5(uniqid(time()));

$subject = "Sharewood Lija";
$mailto = "mymail@gmail.com";

$message = '<img src="cid:image_identifier" alt="SWLBanner" /><br><br>';
$message .="<div>html message</div>";

$header = "From: asdf <asdf@asdf.hr>\r\n";
$header .= "Reply-To: asdf@asdf.hr\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/related; boundary=\"".$uid."\"\r\n\r\n";

$header .= "This is a multi-part message in MIME format.\r\n";  

$header .= "--".$uid."\r\n";    
$header .= "Content-Type: text/html; charset=uft-8\r\n";
//$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";

//image
$header .= "--".$uid."\r\n";
$header .= "Content-Type: image/png;\r\n";
$header .= "name=\"sharewoodlija.png\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-ID: <image_identifier>\r\n";
$header .= "Content-Disposition: inline;\r\n";
$header .= "filename=\"sharewoodlija.png\"\r\n\r\n";

$header .= $inline."\r\n";

//cjenik
$file = "../cjenik/sharewood-lija-cjenik.xlsx";
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));  
$name = basename($file);

$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name=\"".$filename."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";

//ponuda
$file2 = "../cjenik/sharewood-lija-ponuda.pdf";
$file_size2 = filesize($file2);
$handle2 = fopen($file2, "r");
$content2 = fread($handle2, $file_size2);
fclose($handle2);
$content2 = chunk_split(base64_encode($content2));
$name2 = basename($file2);

$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/pdf; name=\"".$filename2."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename2."\"\r\n\r\n";
$header .= $content2."\r\n\r\n";
$header .= "--".$uid."--";



if (mail($mailto, $subject, "", $header)) {
    echo "mail send ... OK"; // or use booleans here
} else {
    echo "mail send ... ERROR!";
}
?>


感谢您的帮助

问题不在于您的程序。谷歌邮件不允许使用图片。我看过3次邮件客户端调查,大多数都不会处理像雷鸟这样的图像。有些人甚至不会表示有图像或显示alt标题或任何内容
.

停止使用mail()(mail()非常有限),使用其中一个库(phpmailer,swifftmailer)不,我需要这个来处理mail()。然后你就可以为自己的背部做一根杆子了。
“----=\u NextPart.'$uid.\r\n”