【发布时间】:2012-04-29 15:02:54
【问题描述】:
我有这段代码可以通过 PHP 发送电子邮件:
// Prepare email.
$headers = "From: Mi9 Vault <info@mi9vault.com.au>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=ISO-8859-1";
$msg = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/edm/confirmation.html');
$msg = str_replace('{first_name}', $contact["First Name"], $msg);
// Send email
mail($contact["Email Address"], "Your Mi9 Registration is Confirmed", $msg, $headers);
confirmation.html 是我们设置的 HTML 电子邮件。
我在使用上述 PHP 代码发送电子邮件之前从未遇到过任何问题,但我似乎只能得到一封包含所有 HTML 的电子邮件,而不是实际的 HTML 格式电子邮件。
基本上我会收到一封包含以下内容的电子邮件:
MIME-Version: 1.0
Content-type: text/html; charset=ISO-8859-1
Message-Id: <20120418080325.C643B407EF@ds3219.dreamservers.com>
Date: Wed, 18 Apr 2012 01:03:25 -0700 (PDT)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
.....
我在具有相同主机的另一个网站上拥有相同的 PHP 代码,并且运行良好...
【问题讨论】:
-
我以前遇到过这个问题,并通过摆弄
\r\n的位置来解决它。您可能想尝试 Dante 的解决方案。 -
实际上内联 HTML 只能用于非常松散(不兼容)的用户代理。当您修复了 ehaders 中的换行符问题后,您可能会在您的电子邮件客户端中根据需要显示此内容,但您应该使用 7 位传输编码,并且 html 应该标记为 mime 内联内容