30

I have read the notes here http://technet.microsoft.com/en-us/library/hh831568.aspx regarding deprecated and removed features in Windows 2012 and it says that SMTP is deprecated. I assume this is referring to the IIS SMTP server. The advice is to use System.Net.Smtp instead but I assume this is a misprint because I can't find any references elsewhere to anything called System.Net.Smtp.

If they actually meant to say System.Net.Mail, that is just an API and I fail to see how an API replaces a server process. I need a service that accepts connections on port 25 and routes the email to the destination like IIS SMTP used to do.

Can anyone clarify the situation here please? If they had said it was replaced by Exchange then I would curse at them but at least that would me a meaningful statement to make whereas the current one most definitely is not.

3 Answers 3

18

I think the referenced statement from Microsoft is just terrible and completely confusing and I don't think whoever wrote it has any clue about how the SMTP server even works. It doesn't explain why it is deprecated or if anything is wrong with it. Perhaps there are security problems or buffer overruns, but if you're not exposing it on a public port I wouldn't hesitate to use it.

Here's what I do :

  • In IIS I set up 'SMTP Email' for the domain to point to 10.0.0.1. I do this in the parent folder to any deployed sites or else it will get erased when you redeploy. If you want you can put it directly in web.config but its less flexible that way.
  • In the SMTP Server (through IIS6 Management Console) I set up an SMTP server at 10.0.0.1. Obviously as I said before this isn't exposed on the public internet.
  • I configure this server to relay through a Smart Host via smtp.gmail.com or smtp.live.com
  • In my .NET application I use the Mail API to send a message using a new SmtpClient(). This picks up the configuration from IIS and sends the mail to my SMTP server at 10.0.0.1
  • When i send a mail it returns instantly because it's just being send to localhost

  • Now this is the important benefit of using a local SMTP server that cannot be understated and for which 'System.Net.Smtp' in itself is no substitute:

    • The SMTP server will try to relay the mail through your smarthost for you and if it can't immediately send it will retry later.
    • It's important to realize that sometimes even smtp.gmail.com won't reply or perhaps your network is down. (Surprisingly common when I first tried sending mail directly)
    • Without an intermediate SMTP server to store the messages you can't just 'send and forget' from .NET and you'd have to figure out some kind of retry mechanism which is completely unnecessary with an SMTP server which does it all for you
    • I believe that if you have an SMTP relay limit (on your ISP/GMail) then the SMTP server will just keep retrying and send the messages the next day - another huge benefit if you have inconsistent traffic from day to day or hit you limit without realizing.

Go ahead and use it. Microsoft hasn't provided a replacement, and it's free so why not. 'Deprecated' means nothing in my opinion if there's no replacement.

Disclaimer: I'm still on Server 2008 but I assume all this still applies.

2
  • 4
    Yes, the same still applies on Windows Server 2012. I'm always surprised to find so few people who realise the advantage of using a local SMTP server to queue messages!
    – Richard
    Aug 15, 2013 at 19:08
  • 1
    In addition to the queueing, the SMTP server gets you logging The SMTP configuration in IIS 8.5 doesn't offer any logging, as far as I'm aware. We add in the SMTP server via IIS 6 and tell IIS 8.5 to connect to the localhost just to get the W3C log files.
    – Bacon Bits
    Sep 2, 2016 at 14:52
14

The SMTP feature of the Web Server role has been deprecated but has not been removed. You can install it and use it but it's recommended to use another (external) SMTP server.

SMTP and the associated management tools are deprecated. Though the functionality is still available in Windows Server 2012, you should begin using System.Net.Smtp. With this API, you will not be able to insert a message into a file for pickup; instead configure Web applications to connect on port 25 to another server using SMTP.

So in the future, you would install and use a separate SMTP server (of which there are many available) to provide SMTP services to Web applications running on Windows ServerX.

4

That description in the article you linked to is terrible! But here is what it is trying to tell you:

Turning on IIS SMTP in previous versions of Windows did two things:

  1. Started an IIS SMTP server.
  2. Added programming libraries (i.e. COM objects, etc.) for sending messages.

If you used those libraries with no configuration whatsoever, they would submit to the local IIS SMTP server. Programmers are inherently lazy, so since that worked with the least amount of effort on their part, that's what they did. And many didn't provide a way to send email via a different SMTP server.

What the article should say is that the IIS SMTP server no longer exists, but the SMTP libraries are still provided and the application should be configured to use a different SMTP server.

6
  • 2
    The SMTP Server is a feature of the Web Server role in Windows Server 2012 and can be installed. It has been deprecated but not removed.
    – joeqwerty
    Dec 6, 2012 at 15:02
  • I assume it still appears under 'IIS6 management console' right?
    – Simon
    Feb 8, 2013 at 1:59
  • 2
    @Simon Yes, the same good old management console from 2002 from IIS 6 is still used to configure SMTP in Windows Server 2012. :) The IIS 6 management feature is a dependency on the SMTP feature.
    – bzlm
    Aug 19, 2015 at 7:46
  • 1
    Ignore the ignorant laziness slur. For details on why a local SMTP server is a good idea (and standard on most other OSes - client and server), see this answer.
    – bzlm
    Aug 19, 2015 at 7:49
  • How about windows server 10 or whatever it's called? Same deal?
    – Simon
    Aug 19, 2015 at 8:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .