【问题标题】:Programmatically adding a signature to an email以编程方式向电子邮件添加签名
【发布时间】:2015-06-07 13:20:54
【问题描述】:

我需要为通过专用代理服务器的电子邮件添加签名。似乎没有一个很好的方法来做到这一点,我最初的想法是:

  1. 如果邮件不是MIME,或者是text/plain,只需在正文底部添加文本, 带有前面的“--”行(添加签名的旧约定 到text/plain消息;见RFC3676, 4.3)
  2. 如果邮件是multipart/mixed,找到最后一个边界,插入 它上面有一个新的“multipart/alternative”实体,包含普通和 签名的 HTML 版本。这样做的缺点是 sig 可能 但出现在附件下方。
  3. 如果邮件不是multipart/mixed,则改为multipart-mixed,并且 将现有实体降级到混合部分;现在添加 multipart/alternative签名作为新的最后一部分 multipart/mixed。与 (2) 相同的缺点。

似乎很啰嗦。关于更好的方法来做到这一点的任何想法?谢谢。

【问题讨论】:

  • 我会在您的参考文献中添加一些超链接,以便人们更轻松地快速查看您所参考的内容,例如“RFC3676, 4.3”。只是一个建议。 :)
  • 完成了 - 几十个 MIME 参考资料 - 太复杂了!

标签: email mime


【解决方案1】:

如果只对text/html 感兴趣而不在text/plain 部分感兴趣,那么更简单的实现是使用您的html 签名将text/html 转换为multipart/mixed

之前

multipart/alternative
  text/plain
  text/html

之后

multipart/alternative
  text/plain
  multipart/mixed
    text/html
    text/html <== your signature

【讨论】:

    【解决方案2】:

    我按照上面的方法进行了编码,它在 Yahoo、gmail、AOL、GMX 和 Thunderbird 上都很好,MIME 验证了 herehere。 问题是我再次忘记了微软完全无法阅读 RFC。如果multipart/mixed 部分包含两个multipart/alternative 部分,其中每个部分都包含一个text/plain 和一个text/html 替代项,那么Outlook/hotmail 实际上会在第二个multipart/alternative 中显示两个 替代项。因此,它同时显示了普通签名和 HTML 版本。

    修复很简单——我没有为签名添加第二个multipart/alternative,而是添加了一个仅包含HTML签名的text/html部分。这在上述所有 MUA 上都能正确显示,包括脑死亡的 MUA。不完全理想,但我可以只为 Microsoft 收件人启用修复,如果他们说服他们的 MUA 只显示纯文本,让他们解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-28
      • 2013-10-06
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多