以编程方式将签名添加到电子邮件
问题描述:
我有一个要求为通过专用代理服务器的电子邮件添加签名。似乎没有要做到这一点非常好办法,和我最初的想法是:以编程方式将签名添加到电子邮件
- 如果邮件是非MIME,或者是
text/plain
,只需添加文本到身体的底部, 与前面的“ - ”线(用于添加签名 到text/plain
消息的旧约定;参见RFC3676, 4.3) - 如果邮件是
multipart/mixed
,找到最后边界,并插入 一个新的`多部分/替代”实体以上它包含plain和 sig版本的HTML版本。尽管如此,这有一个缺点,即sig可能会在附件下面出现 。 - 如果邮件不
multipart/mixed
,使multipart-mixed
,并 降级现有实体到混合部分;现在将multipart/alternative
签名添加为新的multipart/mixed
的最后一部分。 (2)一样的缺点。
看起来很啰嗦。任何想法,更好的方式来做到这一点?谢谢。
答
我编码如上,在Yahoo,gmail,AOL,GMX和Thunderbird上都没问题,MIME验证为here和here。 问题是我再次忘记了微软完全无法读取RFC。如果multipart/mixed
部分包含两个multipart/alternative
部分,其中每个部分包含text/plain
和text/html
替代方案,则Outlook/hotmail实际上在第二个multipart/alternative
中显示两个替代方案。因此,它显示了纯文本签名和HTML版本。
修复很简单 - 我不是为签名添加第二个multipart/alternative
,而是添加一个text/html
部分,其中只包含HTML签名。这在所有上面的MUA上都能正确显示,包括脑死亡者。并不完全理想,但我可以仅为Microsoft收件人启用修补程序,并让他们排除这些问题,如果他们说服他们的MUA仅显示纯文本。
我会为您的参考添加一些超链接,以方便人们快速查看您参考的内容,例如“RFC3676,4.3”。只是一个建议。 :) – CalebB 2015-04-02 14:32:23
完成 - 几十个MIME的引用 - 虽然 - 太复杂了! – EML 2015-04-02 15:20:57