以编程方式将签名添加到电子邮件

问题描述:

我有一个要求为通过专用代理服务器的电子邮件添加签名。似乎没有要做到这一点非常好办法,和我最初的想法是:以编程方式将签名添加到电子邮件

  1. 如果邮件是非MIME,或者是text/plain,只需添加文本到身体的底部, 与前面的“ - ”线(用于添加签名 到text/plain消息的旧约定;参见RFC3676, 4.3
  2. 如果邮件是multipart/mixed,找到最后边界,并插入 一个新的`多部分/替代”实体以上它包含plain和 sig版本的HTML版本。尽管如此,这有一个缺点,即sig可能会在附件下面出现 。
  3. 如果邮件不multipart/mixed,使multipart-mixed,并 降级现有实体到混合部分;现在将 multipart/alternative签名添加为新的 multipart/mixed的最后一部分。 (2)一样的缺点。

看起来很啰嗦。任何想法,更好的方式来做到这一点?谢谢。

+0

我会为您的参考添加一些超链接,以方便人们快速查看您参考的内容,例如“RFC3676,4.3”。只是一个建议。 :) – CalebB 2015-04-02 14:32:23

+0

完成 - 几十个MIME的引用 - 虽然 - 太复杂了! – EML 2015-04-02 15:20:57

我编码如上,在Yahoo,gmail,AOL,GMX和Thunderbird上都没问题,MIME验证为herehere。 问题是我再次忘记了微软完全无法读取RFC。如果multipart/mixed部分包含两个multipart/alternative部分,其中每个部分包含text/plaintext/html替代方案,则Outlook/hotmail实际上在第二个multipart/alternative中显示两个替代方案。因此,它显示了纯文本签名和HTML版本。

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