Question

I'm looking for ActiveX components that can easily:

  • get and send emails via SMTP and POP3
  • strip out and save attachments.
  • Convert RTF (Outlook emails) to HTML
  • Sanitize HTML.

What components would you recommend? What components do you use?

Was it helpful?

Solution

Sendong and receiving email is simple with CDOSYS. And RTF isn't really that complex a format to handle. But I think Chilkat SMTP/POP# ActiveX component is something you migth want to look into.

OTHER TIPS

seanyboy, I can help you out here, but before you look at commerical solutions, there are a couple things you need to understand.

First, there are hundreds, or thousands of controls out there to do what you want.

But, you have to consider HOW you are going to use them. I used to work for an Anti-virus company, and when we decided to hook our product into Exchange, it became obvious that the solution we chose was NOT going to work. The issue was, the commerical apps follow the RFC's (usually) to a T. (Or is it TEE? I dunno..) But, viruses NEVER follow the RFC standards. So, I ended up writing my own Mime parser for our scanner, and my detection rate was MUCH better than anything else we tried. Why? Because each time I spotted an email that broke the RFC's I tweaked the code to deal with it. The one example that comes to mind was the "Content-Type: maintype/subtype; param =". Notice the space after param and equals. This breaks the RFC rules, but most mail readers deal with it, allowing the virus to do it's thing.

But, this also is a double sided coin.... In MY code, I was not able to decode an attachment formatted as follows:

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

http://virus.virussite.com
JVBERi0xLjMgCiXi48/TIAo3IDAgb2JqCjw8Ci9Db250ZW50cyBbIDggMCBSIF0gCi9QYXJlbnQg NSAwIFIKL1Jlc291cmNlcyA2IDAgUgovVHlwZSAvUGFnZQo+PgplbmRvYmoKNiAwIG9iago8PAov

...

But, the commerical apps had no problem parsing it... Most likely because they followed the RFC's again, and did not accept Base64 data if it was not exactly 77 chars long (I think 77 is the RFC std.. I'd have to reference it.).

But, I had bigger problems with broken B64, and B64 that ran all on a single line, etc, and it had to be decoded, so I took everything in the data block as Base64 data that was in fact a valid base64 char. Everything else was simply skipped over...

Anyways, they key is, decide what you NEED out of this control, and then decide if you want to consider writing your own, buying a commercial one, or even paying someone (like myself) to write one for you.

(I'm not exactly sure my last sentence is acceptable by Stack Overflow rules, so I'm not soliciting you, just tell you know your options. I mention this option because you'd have access to the source code, and would be able to maintain it yourself, or find someone else to maintain it, if you decided to break relations with your developer. This is not an option for 99.99% of the commercial solutions...) If they make a change that screws you or your application, you are well, screwed.. :)

Hope this helps, or at least gives you something to read. heh..

Let me know if I can be of any more help.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top