我正在使用MAMP(LAMP堆栈开发环境)使用PHP发送电子邮件。
代码如下:
$out_message = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>You have requested an appointment with the Smile Zone</title>
</head>
<body>
<p style="font-family:Arial, Helvetica, sans-serif;"><strong>Dear '.$details_name.'</strong></p>
<p style="font-family:Arial, Helvetica, sans-serif">You have requested an appointment!</p>
<p style="padding:10px;"><strong>Please note that this appointment is currently unconfirmed</strong></p>
</body>
</html>
';
//now for the client side:
$out_to = 'john@gmail.com';
$out_subject = 'My Subject';
// 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: John <john@gmail.com> \r\n";
$headers .= 'From: The Smile Zone <noreply@smile-zone.com>' . "\r\n";
$success2 = mail($out_to, $out_subject, $out_message, $headers);
当我在Apple Mail中发送此电子邮件和视图时,它看起来应该如此,但在GMail中,在浏览器中我得到的只是原始来源。
为什么会这样?
答案 0 :(得分:2)
你有冲突的字符集:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
和
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
将它们更改为匹配。
答案 1 :(得分:0)
删除这些标记
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>You have requested an appointment with the Smile Zone</title>
</head>
<body>
有些人使用完整链接
使用某些标准库,例如
答案 2 :(得分:0)
与其他网络客户相比,Gmail对电子邮件格式的宽容度要低得多。您需要符合RFC2822。我的猜测是PHP中的mail
函数不会为多部分消息创建符合RFC的消息。 (即包含文本和HTML部分的消息。)根据mail
的文档,最好使用PEAR::Mail_Mime
。