2

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

请告诉我我做错了什么,为什么邮件没有以 html 格式发送

4

2 回答 2

2

从:

$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, 'info@myserver.com', $pr_email, $subject, $message); $SMTPChat = $SMTPMail->SendMail(); 

您永远不会在$headersvar 中发送,因为电子邮件没有标头,因此另一端的邮件客户端不会读取 MIME 类型。

我不了解SMTPClient课程并从教程中判断我建议您不要使用它,因为它直接打开一个到 SMTP 服务器的套接字。此外,此类实际上并不支持糟糕的自定义标头。mail()将使用您的默认 SMTP 服务器。

于 2012-08-20T10:17:59.190 回答
1

请改用 PHPMailer。

它允许您发送 SMTP 和普通电子邮件(PHP 的 mail() 函数或显式所有 SMTP 参数),最重要的是它允许您指定 HTML 消息、纯文本替代消息(但不要指定它,否则某些客户端不会显示 HTML 之一,例如血腥的 Lotus Notes)。

它允许您指定标题、mime 等...

http://phpmailer.worxware.com/

于 2012-08-20T10:18:04.573 回答