【问题标题】:gmail is not displaying html text properlygmail没有正确显示html文本
【发布时间】:2012-06-03 02:22:44
【问题描述】:

我制作了向用户发送 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 的截图:

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

【问题讨论】:

    标签: php html gmail


    【解决方案1】:

    不要使用&lt;font&gt; 标签。这就是您在 1995 年为 html 设置样式的方式。请尝试使用内联样式:

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

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

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

    【讨论】:

    • 这是一个无效的颜色样式,它会杀死整个样式块。
    【解决方案2】:

    这很可能是由于 &lt;font&gt; 标记的嵌套不当造成的。

    &lt;font&gt; 标签是一个内联元素,它应该嵌套在你的块元素中,例如&lt;p&gt; 标签。

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

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

    【讨论】:

    • 谢谢,这行得通。任何人都可以向我解释为什么当我不使用外部文件来获取我的电子邮件文本时我的代码确实有效吗?
    • 远程调试有点困难,但我建议您查看 a) txt 文件的字符编码 b) 文本文件内容使用的换行符可能与您手动输入时使用的换行符不同 - \例如,r\n 与 \n。这可能会导致一些奇怪的包装问题,破坏 html?都有点投机。
    猜你喜欢
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多