我正在使用以下代码发送电子邮件:
$to = "****.co.uk";
$subject = "Membership submission";
$body = "";
$date = date('d/m/Y H:i:s');
$body .= "<b>REF</b>: " . $postId . "<br />";
$body .= "<b>On</b>: " . $date . "<br />";
$body .= "<b>First name</b>: " . $postFirstName . "<br />";
$body .= "<b>Last name</b>: " . $postLastName . "<br />";
$body .= "<b>Company name</b>: " . $postCompanyName . "<br />";
$body .= "<b>Address</b>:<br /> " . nl2br( $postAddress ) . "<br />";
$body .= "<b>Telephone number</b>: " . $postTelephoneNumber . "<br />";
$body .= "<b>Email</b>: " . $postEmail . "<br />";
$body .= "<b>Website</b>: " . $postWebsite . "<br />";
$body .= "<b>Skills</b>:<br /> " . nl2br( $postSkills ) . "<br />";
$body .= "<b>Payment method</b>: " . $postPaying . "<br />";
// 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 .= 'From: noreply@*****.co.uk' . "\r\n";
if ( mail( $to, $subject, $body, $headers ) ) {
//
在outlook.com和windows 8邮件程序中它很顺利。 但是当发送到我客户的桌面Outlook程序时,它会像这样:
Content-type: text/html; charset=iso-8859-1
From: noreply@***
X-Brightmail-Tracker: AAAAAQAAAlk=
<b>REF</b>: 513a8440922ea<br /><b>On</b>: 09/03/2013 00:40:59<br /><b>First
name</b>: a name<br /><b>Last name</b>: a last name<br /><b>Company name</b>: My
Company name<br /><b>Address</b>:<br /> an address,<br />
2,<br />
3,<br />
4,<br />
postcode<br /><b>Telephone number</b>: 521213091<br /><b>Email</b>:
****.co.uk<br /><b>Website</b>: site.com<br
/><b>Skills</b>:<br /> I do not have any skills to assist with.<br />
<br />
Sorry<br /><b>Payment method</b>: Bank transfer<br />
我的代码有什么问题吗?
我刚尝试添加此内容:
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
现在我在outlook.com收到的电子邮件只是HTML格式。那杀了吗?这是什么问题!
答案 0 :(得分:0)
您似乎缺少MIME规范:添加此项:
$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
答案 1 :(得分:0)
我不确定,但这可能是因为您错过了开始<html>
和关闭</html>
代码。
mail()函数的example in the documentation可能会有所帮助。
答案 2 :(得分:0)
这是我正在使用的代码段。我工作得很好。
// Boundary
$innerboundary ="=_".time()."_=";
// Mail-Header
$header ="MIME-Version: 1.0\n";
$header.="From: sender@mail.com\n";
$header.="Reply-To: sender@mail.com\n";
$header.="X-Mailer: kmPHP-Mailer\n";
$header.="Content-Type: multipart/alternative;\n\tboundary=\"".$innerboundary."\"\n";
// Mail-subject
$subject ="Subject goes here";
$body ="";
// HTML part
$body.="\n--".$innerboundary."\n";
$body.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
$body.="Content-Transfer-Encoding: base64\n\n";
$body.=chunk_split(base64_encode(($html_string_goes_here)))."\n\n";
$body.="\n--".$innerboundary."--\n";
$body.="\n\n";