【问题标题】:Yahoo Mail and PHP Mailer formatting.Yahoo Mail 和 PHP Mailer 格式化。
【发布时间】:2015-01-16 21:28:44
【问题描述】:

我正在使用 PHP 邮件程序类,一切都按我的意愿工作。只有一个问题,它只发生在雅虎邮件上。首先,这是我的代码:

$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

正文显然更长,因此对于雅虎用户来说真的很难阅读。雅虎出现这种奇怪的格式是否有原因?

【问题讨论】:

  • &lt;p&gt; 标签是否已从 yahoo 的邮件中删除?还是邮件客户端的css格式有问题?也许您应该在邮件中发送自己的 CSS。

标签: php phpmailer yahoo-mail


【解决方案1】:

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

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

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

【讨论】:

  • 太棒了!非常感谢您的帮助!
  • 但是你应该转义引号内的引号。
【解决方案2】:

当您以这种方式编写邮件时,像 Yahoo 这样的网络邮件程序解释(或操纵)它的可能性较小:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2012-12-08
    • 2011-01-08
    相关资源
    最近更新 更多