我通过我的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。
答案 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";
此链接最有帮助
答案 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”来创建新行。