邮件标题在PHP不工作
问题描述:
请帮助我,我使用PHP发送一个HTML格式的邮件消息的问题mail()
我认为问题在于标题。我已经包含了两个头只用单引号或双引号略有区别:邮件标题在PHP不工作
头1:
$headers = 'From: [email protected]\r\n Reply-To: [email protected]';
$headers .= '\r\nContent-Type: multipart/alternative; boundary="'.$random_hash.'"';
当我使用单引号像上面,我所有的HTML代码印在邮件作为没有适当的html格式的简单文本。此外,我的标题显示在\r\n
缺失之后,所有内容都搞砸了。
头2:
$headers = "From: [email protected]\r\nReply-To: [email protected]";
$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"".$random_hash."\"";
使用这一块,我得到一个完美的头,但现在我的邮件发送空的,空的附件。我不是从哪里来的,因为我没有附加任何东西给我的邮件。
请建议做什么
答
如果使用单引号在你的PHP字符串逃过像\ r \字符ñ将停止工作。
我不确定如何在没有更多上下文的情况下帮助您的附件。
答
这是我在切换到phpmailer之前使用的。如上所述使用库。
// Make email headers
$separator = '--==Multipart_Boundary_'.md5(time());
$eol = PHP_EOL;
$filepath = "filename.pdf";
// open pdf file
$handle = fopen($filepath, "r");
// read pdf file
$f_contents=fread($handle,filesize($filepath));
// encode read pdf file
$attachment = chunk_split(base64_encode($f_contents));
// close pdf file
fclose($handle);
$message = "Text goes here";
// main header (multipart mandatory)
$headers = "MIME-Version: 1.0".$eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol;
$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "X-Priority: 1 (Highest)".$eol;
$headers .= "X-MSMail-Priority: High".$eol;
$headers .= "Importance: High".$eol;
// message
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: text/plain; charset=utf-8".$eol;
$headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$headers .= $message.$eol;
// attachment
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: application/pdf; name=".$filename.$eol;
$headers .= "Content-Transfer-Encoding: base64".$eol;
$headers .= "Content-Disposition: attachment; filename=".$filename.$eol.$eol;
$headers .= $attachment.$eol.$eol;
$headers .= "--".$separator."--";
答
如果你没有实际定义两个版本(明文/ HTML)与多边界,那么你应该改变的内容类型:多重/替代正确的内容类型为你的邮件内容。
此外,PHPMailer等等库通常优于PHP的原生mail()
函数,因为它们提供了更大的灵活性,同时不需要您手动构建复杂的头文件。
+0
PHPMailer做到了...... thnks – Anubhav 2010-11-22 12:15:36
+1不错的图书馆,还没有看过那个。看起来不错! – 2010-11-19 20:40:38