phpmailer — форматирование Yahoo Mail и PHP Mailer.

Я использую класс почтовой программы 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 = "[email protected]"; // 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

Но при отправке его на адрес Yahoo, он выглядит как

Hello
World

Тело явно длиннее, поэтому пользователям Yahoo очень сложно его читать. Есть ли причина такого странного форматирования в Yahoo?

0

Решение

Ах, добро пожаловать в мазохистский мир электронных писем HTML. Yahoo (по крайней мере, раньше) убирает поля из тегов абзаца, поэтому вам нужно будет вручную добавить их обратно. Попробуй это:

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

Это будет гарантировать согласованность между почтовыми платформами. Ты можешь проверить это руководство за немного проблемы совместимости.

3

Другие решения

У веб-писателей, таких как Yahoo, меньше возможностей интерпретировать (или манипулировать), когда вы пишете это следующим образом:

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

По вопросам рекламы [email protected]