We have an ASP.NET app that sends email confirmations. We wish to have more logging traceability for email confirmations and alerts to our clients. We are looking into the drop folder method (or queue directory) of sending email. Why should we use SMTPQ over IIS SMTP?
I can point out differences -- which may be viewed as either advantages or disadvantages depending on what you need.
In both cases, emails are being provided to an SMTP service for delivery. In the case of the IIS queue directory, it is not via the SMTP protocol, but simply by dropping the MIME email in the queue directory. My understanding is that the recipients are obtained from the MIME's TO and CC headers, and the return address (for delivery status notifications, i.e. bounced email) is obtained from the FROM header.
In the case of SMTPQ, the SMTPQ service is behaving as an email client exactly as it would had the SMTP session happened within your application synchronously. When the email is written to the SMTPQ directory, all of the details regarding the SMTP server to be used, the connection settings, the authentication, as well as signing/encrypting info, recipients, return-address, etc, are written to special encrypted header fields. When the SMTPQ picks up a .eml for sending, it reads these fields, internally using a CkMailMan object itself and setting the properties accordingly. It removes these special headers from the .eml, and sends the email.
Email dropped into the IIS queue directory are only for the local SMTP server. However, each email dropped into the SMTPQ queue directory can theoretically send through any SMTP server (whatever was indicated by the MailMan property settings at the time of the call to SendQ).