我尝试从我的服务器发送电子邮件到收件人,没有问题,电子邮件被发送。我在这封邮件里有TEXT HTML,还有一个PDF附件…
问题是:我收到了邮件,我收到了PDF,但是没有文本!
这是我的代码,如果你可以帮助:)
$filepath = '../../path/file.pdf';
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email))
{
$br = "rn";
}
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 = "nn". "--" .$boundary . "nContent-Type: application".$file_type."; name="$file_name"rnContent-Transfer-Encoding: base64rnContent-Disposition: attachment; filename="tickets.pdf"rnn".$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);
如果我必须调试它,我会删除附加的PDF并检查它是否发送文本,然后尝试将其添加回来。
您也可以尝试使用var_dump将$body和其他变量打印到屏幕上,并与我们共享,这样就更容易发现问题。可能是你发送的内容与电子邮件发送的格式不匹配
我很确定,当你在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>';