2012-03-28 77 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 2012-03-28 13:44:44

+0

仅含HTML的电子邮件很容易标记为“可能是垃圾邮件”(我的电子邮件服务也是这样做的)。 – Quentin 2012-03-28 13:46:00

+2

尝试phpMailer:http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ – 2012-03-28 13:47:09

回答

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

工程就像一个魅力。非常感谢。 – 2012-03-29 10:40:14

+0

我很高兴为你工作,祝你有美好的一天! – 2012-03-29 10:55:32

+0

不确定,但看起来如此,但是当作为收件人处理gmail时,我们无法在不影响邮件传递的情况下更改标题。我不得不评论'$ mail-> ClearCustomHeaders();'和所有自定义标题'$ mail-> AddCustomHeader();'现在gmail正在接收电子邮件就好了 – 2015-10-04 22:20:37

-1

我不认为你正试图在这里是什么标准。电子邮件通常是纯文本/文本,而不是text/html。 Theres选项可以将电子邮件作为mime-multipart消息发送,但是,如果没有text/html支持,那么浏览器将拥有文本/纯文本版本。你应该使用一个类来保护自己免受MIME的实现细节。

Mi注释适用于高级PHP用户。 Beaginer可以手动完成任务,他们没有经历过什么事情会以这种方式破坏。因此,这里顶尖的评论对足球队员来说已经足够了。 Professionales更适合使用创建正确的MIME类型多部分文件的类。

-1

尝试使用

Content-type:html;

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

相关问题