您之前可能遇到过此错误。我似乎无法修复它。 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 © 2012';
$message .= '</html></body>';
$success = mail($to,$subject,$headers,$message);
我的问题是,如果电子邮件客户端无法阅读此代码,或者我需要添加一些内容以便Gmail了解,是否可以提供电子邮件的替代纯文本版本?
如果这是重复的话,我道歉,但我似乎无法在这里找到这个问题。 提前致谢。
答案 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 © 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;
我用它来解决我的应用程序中的问题。