Yahoo Mail和PHP Mailer格式。

时间:2015-01-16 21:28:45

标签: php phpmailer yahoo-mail

我正在使用PHP邮件程序类,一切都按照我的要求完成。只有一个问题,它只发生在Yahoo邮件上。首先,这是我的代码:

$body = "<p>Hello</p>";
$body .= "<p>World</p>";

$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->IsHTML(true);
$mail->SMTPAuth = true;
$mail->Hostname = "domain.com";
$mail->Username = "name@domain.com"; // your SMTP username
$mail->Password = "Password"; // your SMTP password
$mail->Host = "ssl://smtp.domain.com"; // SMTP server
$mail->Port = "PORT";
$mail->From = $from;
$mail->FromName = $fromname;
$mail->AddAddress($to); 
$mail->Subject = $subject;
$mail->Body = $body;
    if(!$mail->Send()) {
      echo 'Message was not sent.';
       echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
      }

将邮件发送到Gmail或Hotmail地址时,邮件完美地显示为:

Hello

World

但是当它发送到雅虎地址时,它就是

Hello
World

身体显然更长,所以雅虎用户真的很难读。雅虎有这种奇怪格式的原因吗?

2 个答案:

答案 0 :(得分:3)

啊,欢迎来到HTML电子邮件的自虐世界。雅虎(至少它曾经)从段落标签中去掉边距,因此您需要手动添加它们。试试这个:

$body = '<p style="margin-bottom: 15px;">Hello</p>';
$body .= '<p style="margin-bottom: 15px;">World</p>';

这将保证邮件平台之间的一致性。您可以查看this guide以了解某些兼容性问题。

答案 1 :(得分:0)

当您以这种方式编写时,像Yahoo这样的网络管理员可能会解释(或操纵)它:

$body = "<p>Hello<br /><br />World</p>";