2

我制作了向用户发送 html 电子邮件的脚本。但是,在 Gmail 中,我似乎无法让字体颜色正常工作。它适用于第一条消息,但对话中的下一条消息都显示为紫色。

仅当我使用 file_get_Contents()) 从 .txt 文件中获取字符串时才会发生这种情况。如果我用班级中的字符串填充变量或直接输入消息而不是使用变量,gmail 会正常显示 html。我没有发现其他网络邮件或邮件客户端有任何问题。对于邮件的实际发送,我尝试了phpmailer和常规的 mail() 函数。

    $message = "<html><body><font face='Georgia, Times' color='red'>";
    $message .= "<p>Beste " . $this->name . "</p>";
    $message .= "<p>" . $parPersonal . "</p>";
    $message .= "<p>" . $parOne . "</p>";
    $message .= "<p>" . $parTwo . "</p>";
    $message .= "<p>" . $parThree . "</p></font></body></html>";

来自gmail的截图:

https://imgur.com/h8cLL

附带说明一下,此脚本通常一次只会向 1 个人发送 1 封电子邮件,并且此问题不应该出现,它目前只是邮寄到我自己的 gmail 帐户以进行测试。但是,我非常好奇如何为将来的目的解决此问题。

4

2 回答 2

1

这很可能是由于<font>标签嵌套不当造成的。

标签是一个内联<font>元素,它应该嵌套在你的块元素中,比如<p>标签。

这会导致 HTML 非常混乱,但电子邮件客户端使用的相当陈旧的 html 引擎就是如此。

如今,您可以在元素中使用内联样式来获得良好的覆盖率(但单独<style>的块仍然很难覆盖)。请参阅 CampaignMonitor 提供的这个很棒的资源,了解您可以使用的内容:http: //www.campaignmonitor.com/css/

于 2012-05-28T19:19:41.010 回答
0

不要使用<font>标签。这就是您在 1995 年为 html 设置样式的方式。而是尝试使用内联样式:

<p style="color: red; font-family: Georgia, Times">

作为一般的仅供参考。许多电子邮件客户端从基于 html 的电子邮件中删除样式表信息。如果您有一个想要着色的特定区域,您可能需要考虑使用图像。

也就是说,您还应该知道,内联样式/过度使用旨在突出 CLICK ME 链接的强标签可以增加您的电子邮件的整体跨度分数。

于 2012-05-28T19:14:02.420 回答