代码之家  ›  专栏  ›  技术社区  ›  Steve B.

电子邮件中的乱码HTML

  •  1
  • Steve B.  · 技术社区  · 17 年前

    HTML电子邮件是否有某种格式协议?我们有一个通过电子邮件发送报告的自动化系统,当我查看源代码时,我看到它们用一个“=”分隔行。也就是说,我得到如下信息:

    <html><body>some text some text some text some=
    some text some text some text some text som<ta=
    ble>some text some text some text some text <t=
    r><td...
    

    有人知道这是什么吗?

    4 回复  |  直到 17 年前
        1
  •  6
  •   cletus    17 年前

    你必须以 multi-part MIME . 最佳实践是:

    • 对于不支持HTML的邮件客户端,或者有些人只是在电子邮件中关闭HTML,请始终以这种方式发送HTML和纯文本版本(尽管许多客户端无论如何都不会从不受信任的站点自动下载图像,但存在图像安全/垃圾邮件问题);
    • 图像可以包含在消息中,而不是作为直接链接。直链接节省了带宽,但却是垃圾邮件,甚至是安全问题(例如 Internet Explorer had a buffer overrun bug with PNG images )嵌入图像是具有cid值的引用;以及
    • 只使用最基本的HTML。浏览器HTML支持从原始到奇异不等。当我考虑这样做时,我们无法对我们调查的少数邮件客户保持一致(甚至是可以接受的不同)的外观和感觉,导致我们将报告作为附加的PDF发送,这在很多方面更可取(例如,它们可以很容易地保存)。

    至于你的乱七八糟的消息,在我看来,你的消息没有被正确地标识为HTML,所以邮件客户机将文本行包装成70个左右的字符。

        2
  •  2
  •   Charlie Martin    17 年前

    你的信息被翻译成 "quoted printable" 编码。这可能是您正在创建的邮件头的问题。

        3
  •  0
  •   starblue    17 年前

    看起来它可以被引用为可打印的。 HTML中的等号是如何显示的,它们是否替换为=3e?

    从技术上讲,这没有什么问题,但是最好包括一个可选的纯文本, 对于那些不能或不想阅读HTML邮件的人(比如我)。

        4
  •  0
  •   codelogic    17 年前

    电子邮件 RFC 强制行长度限制,特别是每行不应超过78个字符,不包括CRLF。每行末尾的相等符号只是一个行分隔符,只要有必要的标题(内容文本:文本/HTML),任何支持HTML的电子邮件阅读器都将正确解析该行分隔符。可以在电子邮件约定中找到有关HTML的更多详细信息 here .