html в формате php отображается в Yahoo, но не в Gmail - PullRequest
0 голосов
/ 21 сентября 2010

Я использую MAMP (среду разработки стека LAMP) для отправки писем с использованием PHP.

Код ниже:

$out_message = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>You have requested an appointment with the Smile Zone</title>
</head>

<body>
<p style="font-family:Arial, Helvetica, sans-serif;"><strong>Dear '.$details_name.'</strong></p>
<p style="font-family:Arial, Helvetica, sans-serif">You have requested an appointment!</p>
<p style="padding:10px;"><strong>Please note that this appointment is currently unconfirmed</strong></p>
</body>
</html>
';

//now for the client side:
$out_to = 'john@gmail.com';
$out_subject = 'My Subject';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= "To: John <john@gmail.com> \r\n";
$headers .= 'From: The Smile Zone <noreply@smile-zone.com>' . "\r\n";

$success2 = mail($out_to, $out_subject, $out_message, $headers);

Когда я отправляю это электронное письмо и просматриваю в Apple Mail,он выглядит так, как и должно быть, однако в GMail в браузере все, что я получаю, это необработанный источник.

Почему это так?

Ответы [ 3 ]

2 голосов
/ 21 сентября 2010

У вас есть конфликтующие кодировки:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

и:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Измените их в соответствии.

0 голосов
/ 21 сентября 2010

Gmail гораздо менее простителен в отношении форматирования ваших писем, чем другие веб-клиенты.Вам нужно будет соответствовать RFC2822 .Я предполагаю, что функция mail в PHP не создает сообщения, которые соответствуют этому RFC для сообщений, состоящих из нескольких частей.(То есть сообщения как с текстовой, так и с HTML-частью.) В документации для mail лучше использовать PEAR::Mail_Mime.

0 голосов
/ 21 сентября 2010

Удалить эти теги

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>You have requested an appointment with the Smile Zone</title>
</head>

<body>

Некоторые используют полные ссылки

Используйте некоторые стандартные библиотеки, например

  • zend_mail
  • груша-почта
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...