Вероятно, вы столкнулись с этой ошибкой. Кажется, я не могу это исправить. Похоже, что 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://img.ruphp.com/php/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 © 2012'; $message .= '</html></body>'; $success = mail($to,$subject,$headers,$message);
мой вопрос: есть ли способ предложить альтернативную текстовую версию электронной почты, если клиент электронной почты не сможет прочитать этот код или есть что-то, что мне нужно добавить, чтобы Gmail понял это?
Прошу прощения, если это дубликат, но я не могу найти этот вопрос здесь. Заранее спасибо.
у вас есть некоторые опечатки в вашем коде, я не знаю, как другой клиент отображал контент правильно. я работал над ними и добился успеха, надеюсь, будет работать и для вас, попробуйте это;
$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 © 2012'; $message .= '</body></html>'; $success = mail($to,$subject,$message,$headers);
Это то, что вы ищете
Попробуйте использовать
Content-type: html;
Я использовал его для решения проблемы в моем приложении.
Я не думаю, что вы здесь стараетесь. Письма пишутся в обычном / текстовом формате, а не в тексте / html. Theres возможность отправлять электронные письма в виде сообщения mime-multipart, но тогда у вас есть текстовая / простая версия для браузеров с поддержкой text / html. Вы должны использовать класс, чтобы защитить себя от деталей реализации mime.
Комментарий Mi для продвинутых пользователей PHP. Begginers могут делать что-то вручную, у них нет опыта того, что будет нарушать это. Поэтому высший проголосовавший комментарий здесь достаточно для начинающих. Профессионалы лучше обслуживаются с помощью класса, которые создают правильный многопрофильный файл типа mime.