PHP:Html以html格式发送电子邮件

时间:2012-08-20 10:06:29

标签: php email html-email

我正在按照教程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>

请告诉我我错误的原因为什么邮件没有格式化

2 个答案:

答案 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)。

它允许您指定标题,哑剧等...

http://phpmailer.worxware.com/