我尝试从我的服务器向收件人发送电子邮件,没问题,电子邮件已发送。 我在这封电子邮件中有TEXT HTML,还有PDF附件......
问题是:我收到邮件,收到PDF,但没有文字!
如果你可以提供帮助,这是我的代码:)
$filepath = '../../path/file.pdf';
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email))
{
$br = "\r\n";
}
else
{
$br = "\n";
}
$message_html= "Content-Type: text/html; charset=\"ISO-8859-1\"".$br;
$message_html.= "Content-Transfer-Encoding: 8bit".$br;
$message_html.= '<!DOCTYPE html><html><head>
<title>mytitle</title>
</head>
<body>
<div>
my content!
</div
</body>
</html>';
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
$subject = "mysubject";
$attached_file = file_get_contents($filepath);
$attached_file = chunk_split(base64_encode($attached_file));
$pos=strrpos($filepath,"/");
if($pos!==false)$file_name=substr($filepath,$pos+1);
else $file_name=$filepath;
$pos=strrpos($filepath,".");
if($pos!==false)$file_type="/".substr($filepath,$pos+1);
else $file_type="";
$attached = "\n\n". "--" .$boundary . "\nContent-Type: application".$file_type."; name=\"$file_name\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=\"tickets.pdf\"\r\n\n".$attached_file . "--" . $boundary . "--";
//=====HEADER
$header = "To: ".$email." ".$br;
$header.= "From: frrrrrom".$br;
$header.= "Cc: cccccccc".$br;
$header.= "Reply-to: qdfqsf".$br;
$header.= "MIME-Version: 1.0".$br;
$header.= "Content-Type: multipart/mixed;".$br." boundary=\"$boundary\"".$br;
//==========
$body = $message_html.$attached;
mail($email,$subject,$body,$header);
答案 0 :(得分:1)
如果我必须调试它,我会删除附加的PDF并检查它是否发送文本然后尝试将其添加回来。
此外,您可以尝试使用var_dump $ body和其他vars打印到您的屏幕并与我们分享,然后它会更容易发现问题。可能与您发送的内容不符,不符合电子邮件发送的格式。
答案 1 :(得分:0)
我非常确定当您在php中发送电子邮件时,必须将文本设置为内联。你也没有完成你的结束div(你有</div
),这可能导致你无法看到文本,但它就在那里。
$message_html.= '<!DOCTYPE html><html><head><title>mytitle</title></head><body>';
$message_html.= '<div>my content!</div>'; // The unfinished div
$message_html.= '</body></html>';