Outlook中的PHP HTML邮件呈现标记

时间:2010-01-11 17:17:34

标签: php html-email

我在PHP网站上使用此示例发送HTML电子邮件,但是当我收到脚本发送的邮件时,它会在客户端(Outlook)中呈现标签

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
<title>Birthday Reminders for August</title> 
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
 </table>
</body>
 </html>
 ';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

我的客户端设置为接收HTML邮件 - 所以我不确定发生了什么。有什么指针吗?

2 个答案:

答案 0 :(得分:3)

我不知道如何修复现有脚本,但是为了发送HTML电子邮件,我总是建议使用现成的类PHPMailer:它提供安全,干净的多部分邮件处理,多个收件人,甚至文件附件。

答案 1 :(得分:1)

您的代码适合我。如果Outlook具有查看邮件原始源代码的功能,则应仔细检查并查看是否存在错误。

如果碰巧混合了Windows和Unix风格的换行符,有时电子邮件客户端会忽略某些标题。

此外:

  • 请勿明确添加标头。 PHP会为你做。

  • 删除$ header中的前导回车。