Gmail игнорирует мои электронные письма в формате HTML - PullRequest
2 голосов
/ 28 марта 2012

Возможно, вы уже сталкивались с этой ошибкой раньше. Кажется, я не могу это исправить. Gmail, похоже, игнорирует мои электронные письма в формате HTML и просто показывает код. Все остальные клиенты (или все, что я знаю) правильно отображают контент.

Вот мой код (с некоторыми изменениями, чтобы скрыть имя)

     $to = "$EmailAddress";
     $subject = "My subject!";
     $headers = "From: no-reply@mydomain.co.uk\r\n" .
     "X-Mailer: php";
     $headers .= "MIME-Version: 1.0\r\n";
     $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
     $message = '<html><body>';
     $message .= '<center><img width="300px" src="http://www.mydomain.co.uk/images/mylogo.png"/><br />';
     $message .= '<br /><br />';
     $message .= '<h2>Hello '.$UserName.',</h2>';
     $message .= '<b>Thanks for joining!</b><br /><br />';
     $message .= 'Please find your login details below.';
     $message .= '_____________________________________<br /><br />';
     $message .= 'Username: '.$UserName.'<br/>
                  Password: '.$Password.'<br />
                  <br />';
     $message .= '_____________________________________<br /><br />';
     $message .= 'Thanks,<br/>My company.<br/>';
     $message .= '<br/><a target="_new" href="http://www.mydomain.co.uk"/>www.mydomain.co.uk</a>';
     $message .= '</center>';
     $message .= 'my company &copy; 2012';
     $message .= '</html></body>';

     $success = mail($to,$subject,$headers,$message);

мой вопрос: есть ли способ предложить альтернативную текстовую версию письма, если почтовый клиент не сможет прочитать этот код, или мне нужно что-то добавить, чтобы Gmail его понял?

Я прошу прощения, если это дубликат, но я не могу найти этот вопрос здесь. Заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 28 марта 2012

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

$to = "$EmailAddress";
$subject = "My subject!";
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$message = '<html><body>';
$message .= '<center><img width="300px" src="http://www.mydomain.co.uk/images/mylogo.png"/><br />';
$message .= '<br /><br />';
$message .= '<h2>Hello '.$UserName.',</h2>';
$message .= '<b>Thanks for joining!</b><br /><br />';
$message .= 'Please find your login details below.';
$message .= '_____________________________________<br /><br />';
$message .= 'Username: '.$UserName.'<br/>
Password: '.$Password.'<br />
<br />';
$message .= '_____________________________________<br /><br />';
$message .= 'Thanks,<br/>My company.<br/>';
$message .= '<br/><a target="_new" href="http://www.mydomain.co.uk"/>www.mydomain.co.uk</a>';
$message .= '</center>';
$message .= 'my company &copy; 2012';
$message .= '</body></html>';

$success = mail($to,$subject,$message,$headers);

Это то, что вы ищете

0 голосов
/ 13 февраля 2013

Попробуйте использовать

Тип содержимого: html;

Я использовал его для решения проблемы в моем приложении.

0 голосов
/ 28 марта 2012

Я не думаю, что вы пытаетесь здесь стандартно.Письма обычно пишутся в обычном / текстовом виде, а не в текстовом / HTML-формате.Существует возможность отправлять электронные письма как mime-multipart сообщение, но тогда у вас есть текстовая / обычная версия для браузеров без поддержки text / html.Вы должны использовать класс, чтобы оградить себя от деталей реализации MIME.

Комментарий Mi предназначен для опытных пользователей PHP.Начинающие могут делать что-то вручную, у них нет опыта того, что может сломаться, делая это таким образом.Таким образом, комментария с самым высоким рейтингом здесь достаточно для начинающих.Профессионалы лучше обслуживаются с помощью класса, который создает правильный многосоставной файл MIME-типа.

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