2012-03-28 3 views
2

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

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

 $to = "$EmailAddress"; 
    $subject = "My subject!"; 
    $headers = "From: [email protected]\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 понял его?

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

+0

Почему вы не используете класс для создания своих электронных писем HTML вместо того, чтобы делать все это вручную. Это будет особенно полезно, если вы можете легко добавить версию открытого текста (html-адреса электронной почты ** очень ** раздражают!). – ThiefMaster

+0

HTML-адреса электронной почты очень легко обозначить как «вероятно, спам» (и мой почтовый сервис делает это). – Quentin

+2

Попробуйте phpMailer: http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ –

ответ

7

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

$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

Работает как очарование. Спасибо. –

+0

Я рад своей работе за вас, хорошо провести день! –

+0

Не уверен, но, похоже, но когда вы имеете дело с gmail как получателем, мы не можем изменять заголовки, не влияя на доставку почты. Мне пришлось комментировать '$ mail-> ClearCustomHeaders();' и все пользовательские заголовки 'mail-> AddCustomHeader();' и теперь gmail получает письма просто отлично –

-1

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

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

-1

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

Контент-тип: html;

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

Смежные вопросы