Is the IIS SMTP Server good enough for a production server?

6,539

Solution 1

IIS SMTP is good enough for high loads too.

Related StackOverflow question

Solution 2

I would definitely go with the hMailServer option. We've used IIS SMTP in the past, but when there's a problem, it is a real pain to troubleshoot. hMailServer has much better logging and finer control over various SMTP settings.

You should see what the response is without using the pickup folder...we use hMailServer directly for our apps and it seems to work out OK. As you mentioned, you can do smart host relaying as well, but in my experience it is better to have less steps to troubleshoot.

Solution 3

Well - we used it in our production environment - but I have to caveat the solution:

1) We used it locally so that the queueing would never go down, we had it deliver to a smarthost (we used Postfix). The local queue was just there to accept the messages and send them on. The performance of IIS SMTP deliveing to multiple domains was horrible with volume.

2) If you drop directly to a DROP folder, then your app is tied to that solution. If you deliver with CDO (which should be configured to use SMTP, not just DROP), then you have a problem with high-bit characters in email addresses. This caused us to eventually deliver directly to our Postfix boxes, despite the drawbacks of not using a machine-local queue.

3) Inbound messages went through a third-party spam filter. We found DataEnter's XWall to be a great price/performance fit. Not exactly intuitive, but good performance and a lot of options for configurations. If you use it, I recommend getting the ESET add-on from Ceratec to give you some extra features missing from the core product.

BTW: You could use XWall to deliver outbound - we did this for a few apps and it worked pretty well. Postfix will handle a big load for free, but means managing another app and OS (Linux)...

Share:
6,539
Mee
Author by

Mee

Updated on September 17, 2022

Comments

  • Mee
    Mee over 1 year

    I was planning to use the SMTP server that comes with IIS7 (for a website) but then I came across this link and started to get worried (read the accepted solution), on the other hand I have a limited budget and I can't afford to buy MS Exchange or another expensive server, besides, I'm using ASP.NET for my app which works very well with IIS SMTP server (I was going to use the pickup folder delivery option, this is esp. good for web apps so that the user won't have to wait until the message is sent).

    I heard about hmailserver but it seems it doesn't have the pickup folder option (not completely sure though, so please correct me if I'm wrong). I also don't know if the performance is better than the IIS SMTP server. If this is good enough, I could probably relay from IIS SMTP server to hmailserver, so that I can still use the pickup folder option. Sorry, if I sound like I'm talking to myself here but I'm trying to find the best option and it's not clear so far.

    Any suggestions would be really appreciated...

  • user1124702
    user1124702 almost 15 years
    No they don't. They just have to wait until the local SMTP server accepts it in the Queue. Then the SMTP server asynchronously takes it from the queue and delivers it.
  • user1124702
    user1124702 almost 15 years
    FYI I just timed it on my own server and it takes about 1/10th of a second for hMailServer to accept a message and add it to the queue.
  • Mee
    Mee almost 15 years
    I must've got wrong then. But there's something that's still really good about the pickup folder option, I tried to send mails from the app with the smtp service down and this worked with no problems (the messages are just saved to the pickup folder, no communication here). When I started the service it moved the files in the pickup folder to the queue and started processing them. This means there's no chance that the users may get any errors even with the service down.
  • Mee
    Mee almost 15 years
    From time to time, you just have to make sure the SMTP is up and running. Now, without the pickup delivery option, if the SMTP server is down or not responding, users will get errors with any thing they do that involves email. This is not good for the user experience. This is what I really like about the pickup folder, just send and forget about it.
  • user1124702
    user1124702 almost 15 years
    We haven't had any issues with hMailServer going down, but if you don't want users to see the error, you can do a try{}catch{} in your code and perform some other action if there is an error (like write what would have been in the email to the log file).
  • Mee
    Mee almost 15 years
    Yes, but this means the message was never delivered, now you have more work to do (check the logs to find the messages that were not sent .. etc). With the pickup folder, the message is sent to the SMTP whether it's running or not, it's just a folder on the computer. BTW, actually I used try .. catch blocks in my code exactly as you described but removed them after I decided to use the pickup folder option :)
  • Mee
    Mee almost 15 years
    Thanks, I'm going to give it a try and see what happens.
  • Mee
    Mee almost 15 years
    Thanks a lot for your answer, but why do you recommend not using IIS to relay to another SMTP server (i.e. delivering to a smarthost)? Did you have problems with this configuration?