Gmail忽略了我的HTML电子邮件

时间:2012-03-28 13:43:31

标签: php html email gmail

您之前可能遇到过此错误。我似乎无法修复它。 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 个答案:

答案 0 :(得分: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);

这就是你要找的东西

答案 1 :(得分:-1)

我不认为你在这里尝试的是标准的。电子邮件通常以普通文本/文本编写,而不是text / html。有一个选项可以发送电子邮件作为mime-multipart消息,但是你有一个text / plain版本的浏览器没有text / html支持。你应该使用一个类来保护自己免受mime的实现细节。

Mi评论适用于高级PHP用户。 Begginers可以手动完成任务,他们没有经历过什么事情会破坏这样做。所以这里最高投票评论对于初学者来说已经足够了。使用创建正确的mime类型multipart文件的类可以更好地服务于Professionales。

答案 2 :(得分:-1)

尝试使用

内容类型:html;

我用它来解决我的应用程序中的问题。