Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Choosing SMTP component

Posted on 2003-03-05
Medium Priority
Last Modified: 2010-04-04
I need to send email using SMTP protocol and I found few ready-to-use solutions (FastNet, Indy and Turbopower Internet Professional).
But before I pick one of them I'd like to know if anyone had any problems with them.

Stability is very imporatant for me. Much more than speed.

So, do you have any thing to say about those components.

(more points will be given for multiple answers)
Question by:rpo
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2

Accepted Solution

loufeliz earned 200 total points
ID: 8072902

I would highly recommend that you utilize the Indy components to send mail.  I am currently using them in a Web Application and desktop apps with great success.  Use the latest version available at

I use a  Web Development Helpers wrapper unit that I downloaded from

It has a function that wraps up the SMTP SendMail function. I extended it a bit more to accept attachments and a text file for the message body.

FastNet - I never used them, too many problems according to Delphi Newgroups.
TP IPro, - never used.

I have also used a set of components from Argosoft  

Good luck to you.

- Lou

Expert Comment

ID: 8074527
I have found the ICS components to be the fastest performing, best supported, and most complete of any of the options, either open source or commercial.

I recommend against any pseudo-blocking component - Windows network handling requires that the message pump not be blocked.  A true blocking component will simply not work (once the thread is blocked it cannot receive network messages), and a pseudo-blocking component introduces the possibility of message loss and application lockup under high loading conditions.

Non-blocking components such as ICS provide higher performance and better reliability under Windows.  Several thousand concurrent users have been served off of one thread using non-blocking ICS components.  ICS is also fully thread safe.

The downside to a non-blocking component is that you must think like a real Object Oriented programmer, not aprocedural programmer in a component environment.  This is a short but steep learning curve for most people.

If you plan to port to linux, then you must use a blocking component in your linux version.  This is because linux' network handling is bound to threads rather than messaged to threads.  There is a port of ICS to the linux/Kylix blocking model that is almost drop in.  

ICS has been around since Delphi 1, and is supported under D1 through D7, several versions of BCB, and Kylix 1 through 3, all from the same source files.  There is a project underway right now to add SSL support to the suite.

ICS is written entirely in Delphi from the Windows API to the component interfaces, and is shipped with source.  The cost is one postcard with one nice stamp (The post card is for Francois, the initial author and major contributor to the code base, and the stamp is for his daughter who collects cancelled stamps.)

Support for ICS is by other users of the suite on a free mailing list.

"Throw out everything else and use ICS" was the first piece of advice anyone ever gave me on EE, and it is the single piece of advice I pass on most frequently.

ICS is available from  It comes with full source code and usage examples for all components.  Each component implements the full RFC specification that it embodies.

Good luck!

Author Comment

ID: 8111299
Well, thanks to both of you. I'll pick either Indy or ICS after some checks.

I accept loufeliz' comment as an answer. The same amount of points for swift99 will be available in separate question.

Expert Comment

ID: 8111476
Thank you!

Featured Post

New benefit for Premium Members - Upgrade now!

Ready to get started with anonymous questions today? It's easy! Learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question