我正在按照教程http://css-tricks.com/sending-nice-html-email-with-php/以html格式发送邮件。
我的字符串看起来像
$message = '<html><body>';
$message .= '<img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Dear:</strong> </td><td>" . strip_tags($part_name). "</td></tr>";
$message .= "<tr><td><strong>.$user_name.has fixed an appointment with you on :</strong> </td><td>" . strip_tags($time). "</td></tr>";
$message .= "<tr><td><strong>In:</strong> </td><td>" . strip_tags($meeting_name) . "</td></tr>";
$message .= "<tr><td><strong>Please click on:</strong> </td><td><a href=" . strip_tags($approve_url). "</a> To approve</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
// CHANGE THE BELOW VARIABLES TO YOUR NEEDS
$subject = 'Appointment Request ';
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
但收到的邮件不是html格式,它看起来像
<html>
<body>
<img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />
<table rules="all" style="border-color: #666;" cellpadding="10">
<tr style='background: #eee;'>
<td>
<strong>Dear:</strong>
</td>
<td>Depu</td>
</tr>
<tr>
<td>
<strong>.pandit.has fixed an appointment with you on :</strong>
</td>
<td>
</td>
</tr>
<tr>
<td>
<strong>In:</strong>
</td>
<td>anyp</td>
</tr>
<tr>
<td>
<strong>Please click on:</strong>
</td>
<td>
<a href=http://192.168.0.178/UI/user/approvemeeting.php?meetingid=REG_939300945&key=3107</a> To approve
</td>
</tr>
</table>
</body>
</html>
请告诉我我错误的原因为什么邮件没有格式化
答案 0 :(得分:2)
自:
$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, 'info@myserver.com', $pr_email, $subject, $message); $SMTPChat = $SMTPMail->SendMail();
您永远不会发送$headers
var这样的电子邮件没有标题,因此另一端的邮件客户端将不会读取MIME类型。
我不理解SMTPClient
类和判断形式我推荐你的教程不应该使用它,因为它直接打开一个套接字到SMTP服务器。此类实际上并不支持糟糕的自定义标头。 mail()
将使用您的默认SMTP服务器。
答案 1 :(得分:1)
改用PHPMailer。
它允许您发送SMTP和普通电子邮件(PHP的mail()函数或说明所有SMTP参数),最重要的是它允许您指定HTML消息,纯文本替代消息(但不指定它,否则一些客户端不会显示HTML,例如血腥的Lotus Notes)。
它允许您指定标题,哑剧等...