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

时间:2015-04-02 14:28:08

标签: email mime

我需要为通过专用代理服务器的电子邮件添加签名。这似乎不是一个非常好的方法,我最初的想法是:

  1. 如果邮件是非MIME,或者是text/plain,只需将文字添加到正文的底部, 前面的" - " line(添加签名的旧约定 发送text/plain条消息;见RFC3676, 4.3
  2. 如果邮件是multipart/mixed,请找到最后一个边界,然后插入 一个新的'multipart / alternative'它上面的实体,包含普通和 sig的HTML版本。这具有sig可能的缺点 但是,它出现在附件下方。
  3. 如果邮件不是multipart/mixed,请将其设为multipart-mixed,然后 将现有实体降级为混合部分;现在添加 multipart/alternative签名作为新的最后一部分 multipart/mixed。与(2)相同的缺点。
  4. 似乎很啰嗦。关于更好的方法的任何想法?感谢。

2 个答案:

答案 0 :(得分:0)

我将其编码如上,并且在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上,包括脑死亡的MUA。不完全理想,但我可以只为Microsoft收件人启用修复程序,如果他们说服他们的MUA只显示纯文本,就让他们解决问题。

答案 1 :(得分:0)

如果只对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