使用PHP发送HTML邮件

时间:2012-12-18 07:13:38

标签: php html ssmtp

  

可能重复:
  Sending HTML email from PHP

我通过我的Gmail帐户使用php发送电子邮件。我使用除sendmail之外的ssmtp。我正在使用以下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 个答案:

答案 0 :(得分: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';
                }
?>

答案 1 :(得分:1)

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

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

此链接最有帮助

Sending HTML email with PHP

答案 2 :(得分: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/

答案 3 :(得分:0)

多数民众赞成因为PHP不会自行创建新行。您可以使用echo“Lalala \ n”来创建新行。