代码之家  ›  专栏  ›  技术社区  ›  seanyboy

我正在寻找处理电子邮件的ActiveX组件的建议

  •  1
  • seanyboy  · 技术社区  · 16 年前

    我正在寻找能够轻松:

    • 通过SMTP和POP3获取和发送电子邮件
    • 删除并保存附件。
    • 将RTF(Outlook电子邮件)转换为HTML
    • 净化HTML。

    您会推荐哪些组件?您使用什么组件?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Thedric Walker    16 年前

    使用CDOSY,发送和接收电子邮件很简单。RTF并不是一种真正复杂的处理格式。 但我认为Chilkatsmtp/pop ActiveX组件是您可能希望研究的内容。

        2
  •  1
  •   George Stocker NotMe    16 年前

    Seanyboy,我可以在这里帮你,但是在你研究商业解决方案之前,有一些事情你需要理解。

    首先,有成百上千的控件可以执行您想要的操作。

    但是,你必须考虑如何使用它们。我以前在一家防病毒公司工作,当我们决定把我们的产品挂到Exchange时,很明显我们选择的解决方案不起作用。问题是,商业应用程序遵循RFC(通常)到T(还是T)?我不知道…)但是,病毒从来没有遵循过RFC标准。所以,我最终为我们的扫描器编写了自己的mime解析器,我的检测率比我们尝试的任何其他方法都要高。为什么?因为每次我发现一封破坏了RFC的电子邮件时,我都会修改代码来处理它。想到的一个例子是“content-type:maintype/subtype;param=”注意param和equals后面的空格。这违反了RFC规则,但大多数邮件阅读器都会处理它,允许病毒做它的事情。

    但是,这也是一个双面硬币……在我的代码中,我无法解码格式如下的附件:


    Content-Type: application/octet-stream
    Content-Transfer-Encoding: base64

    http://virus.virussite.com
    jvberi0xljmgcii48/tiao3idagb2jqcw8ci9db250zw50cybbidggmcbsif0gci9qyxjlbnqg Nsawifikl1jlc29cmnlcya2idagugovvhlwzsavugfnzqo+pgplbrvymonkniawig9iago8paov

    但是,商业应用程序分析它没有问题…最有可能的原因是他们再次遵循了RFC,如果base64数据的长度不是77个字符(我认为77是RFC标准)。我得参考一下。

    但是,我遇到了更大的问题,比如断开的B64和运行在一行上的B64,等等,它必须被解码,所以我把数据块中的所有内容都作为base64数据,实际上它是一个有效的base64字符。其他的一切都被跳过了…

    不管怎样,他们的关键是,在这个控制之外决定你需要什么,然后决定你是否要考虑写自己的,买一个商业的,或者甚至付钱给别人(像我自己)为你写一个。

    (我不确定我的最后一句话是否能被堆栈溢出规则所接受,所以我不会请求你,只要告诉你知道你的选择就行了。我之所以提到这个选项,是因为如果您决定与开发人员断绝关系,您可以访问源代码,并且能够自己维护它,或者找到其他人来维护它。对于99.99%的商业解决方案来说,这不是一个选择……)如果他们改变了你或你的应用程序,你就完蛋了。:)

    希望这对你有帮助,或者至少给你一些阅读的东西。嗯…

    如果我能帮上什么忙,请告诉我。