使用标头和PHP mail()函数时,我总是很挣扎。 问题总是一样的,去年,这一次,只要我记得,它让我发疯。
问题是标题只显示在电子邮件中。
收到的邮件示例:
http://nl.tinypic.com/view.php?pic=63va5z&s=8#.U8PmeED8rbw
来源:
$onderwerp = "Bedankt voor uw bestelling met order nummer # ".$row['id'];
$ontvanger = "customer@customer.be";
$reply = "reply@reply.be";
//$reply = htmlspecialchars($_POST['je_email']);
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Reply-To: Webmaster < reply@website.be >\r\n"; // reply-adres
//$headers .= "Cc: webmaster@website.be , crewlid@website.be \r\n"; //copy
//$headers .= "Bcc: crew@website.be \r\n"; // blind copy
$headers .= "From: TEST SOME NAME | GW8 <$reply>\r\n"; // de afzender van de mail
$headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";
$headers .= "X-Priority: 1\r\n"; // 3 voor onbelangrijk
$headers .= "Priority: Urgent\r\n";
$headers .= "Importance: High\r\n"; // Low voor onbelangrijk
$headers .= "X-MSMail-Priority: High\r\n"; // Low voor onbelangrijk
$bericht = "<strong>TEST</strong>";
mail($ontvanger,$onderwerp,$bericht,$headers);
我使用哪个代码段,总是同样的问题.. 标题显示在电子邮件内容中,如屏幕截图所示。
有人知道如何解决这个问题吗?我有一种强烈的感觉,这是一个服务器端问题..
答案 0 :(得分:0)
如果您对此没有经验,最好使用已建立的邮件解决方案而不是PHP mail()
功能。
一些提示:
可读性和防止错误
出于可读性和编程目的 - 考虑将头实现为数组。您可以像这样工作,而不是在每一行中添加\r\n
。在mail()
功能中一起构建邮件时,您可以implode()
。
// Building headers.
$headers = array();
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859';
$headers[] = 'X-Mailer: PHP/'. phpversion();
// ...
// Sending mail.
mail($ontvanger, $onderwerp, $bericht, implode(PHP_EOL, $headers));
发送HTML邮件
我建议在发送html时将邮件发送为multipart MIME messages
。这与你的approch不同。因为在消息中解释并不容易。也许可以尝试使用该链接:http://webcheatsheet.com/php/send_email_text_html_attachment.php
我使用了多部分mime消息,例如通过PHP发送带有自定义附件的HTML邮件。
没有必要注意不同标题的顺序。但是将它们分组并从最重要的那些开始是一种很好的做法。