0

可能重复:
从 PHP 发送 HTML 电子邮件

我正在通过我的 gmail 帐户使用 php 发送电子邮件。我使用的是ssmtp而不是sendmail。我正在使用以下 php 代码发送邮件。

$to = "mymail@gmail.com";
$from = "mymail@gmail.com";
$subject = "Testing mail";
$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset: utf8\r\n";     
$headers = "From:" . $from;
$message = "<html><body><head></head>";
$message .= "<h1>Hello, World!</h1>";
$message .= "</body></html>";

if(mail($to,$subject,$message,$headers)){
   echo "Mail Sent.";
} else {
   echo 'failed';
}

但我收到如下邮件

<html><body><head></head><h1>Hello, World!</h1></body></html>

可能是什么原因?我在 Ubuntu 中使用 ssmtp MTA。

4

4 回答 4

1

尝试在您的代码中使用以下内容

$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

这个链接将是最有帮助的

使用 PHP 发送 HTML 电子邮件

于 2012-12-18T07:19:15.450 回答
1

用这个

<?php
$to = "mymail@gmail.com";
                $from = "mymail@gmail.com";
                $subject = "Testing mail";
                $header  = "MIME-Version: 1.0\r\n";

        $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

                $header .= "From:" . $from;

                $message = "<html><body><head></head>";
                $message .= "<h1>Hello, World!</h1>";
                $message .= "</body></html>";

                if(mail($to,$subject,$message,$headers)){
                echo "Mail Sent.";
                } else {
                echo 'failed';
                }
?>
于 2012-12-18T07:16:19.787 回答
1

您正在模糊地使用标题(单数)和标题(复数)。正确的方法是使用复数作为标题:

$headers  = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

这是一个很好的阅读: http ://css-tricks.com/sending-nice-html-email-with-php/

于 2012-12-18T07:29:39.233 回答
0

那是因为 PHP 不会自己创建新行。您可以使用 echo "Lalala \n" 来创建新行。

于 2012-12-18T07:15:52.857 回答