6

我有以下代码:

    $subject = "Test Email";
    $from = "noreply@bob.com";
    ini_set("sendmail_from", $from);
$message = "<html><body bgcolor=\"#DCEEFC\"> 
                Hello<br><br>
                This is a <b>test</b> email.
                <br><br><hr>
                <a href=\"\">Click Here</a>     
                <br><br><hr>
                <br><br>
                Thank you for your time,<br><br>
            </body></html>";

    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html\r\n"; 
    $headers .= "From: " . $from . "\r\n";
    mail($mail, $subject, $message, $headers);

但是,当我向自己发送电子邮件时,我会在 Outlook 中看到所有代码。如果我将它发送给其他人,他们会看到 HTML。如果我将它发送到我的 hotmail,他们会看到 HTML。

这是我的 Outlook (2007) 的问题吗,如果是,是什么问题,或者我可以在电子邮件中做些什么来保证它正确显示吗?

请帮忙!

4

3 回答 3

8

我发现了问题:

对于 Godaddy 基于 Web 的邮件,HTML 电子邮件无法正确显示

改变:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n"; 
$headers .= "From: " . $from . "\r\n";

至:

$headers  = "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL;
$headers .= "From: Site<$from>" . PHP_EOL;

感谢您的所有帮助!:)

于 2012-08-01T11:17:14.620 回答
2

尝试重新排序标题。我记得前段时间遇到过同样的问题,并且在我使用以下标题后它起作用了:

    $headers = "From: " .$from. "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
    $headers .= "Content-Transfer-Encoding: 8bit\r\n";

不过,我建议使用现成的 php 邮件程序类- 它让生活变得更轻松。

于 2012-08-01T11:16:13.397 回答
1

听起来您将 Outlook 设置为以纯文本形式显示消息,无论它们以何种格式发送。

进入您的 Outlook 首选项并更改它以查看它们到达的格式的消息。

于 2012-08-01T11:08:47.910 回答