Ce qui remplace le serveur SMTP IIS dans Windows Server 2012

30

J'ai lu les notes ici http://technet.microsoft.com/en-us/library/hh831568.aspx concernant les fonctionnalités obsolètes et supprimées dans Windows 2012 et il est dit que SMTP est obsolète. Je suppose que cela fait référence au serveur SMTP IIS. Le conseil est d'utiliser plutôt System.Net.Smtp mais je suppose qu'il s'agit d'une erreur d'impression car je ne trouve aucune référence ailleurs à quelque chose appelé System.Net.Smtp.

S'ils voulaient réellement dire System.Net.Mail, c'est juste une API et je ne vois pas comment une API remplace un processus serveur. J'ai besoin d'un service qui accepte les connexions sur le port 25 et achemine l'e-mail vers la destination comme le faisait auparavant IIS SMTP.

Quelqu'un peut-il clarifier la situation ici s'il vous plaît? S'ils avaient dit qu'il avait été remplacé par Exchange, je les maudirais, mais au moins cela me ferait une déclaration significative, alors que la décision actuelle ne l'est certainement pas.

Andy
la source

Réponses:

19

Je pense que la déclaration référencée de Microsoft est tout simplement terrible et complètement déroutante et je ne pense pas que celui qui l'a écrite ait une idée du fonctionnement du serveur SMTP. Il n'explique pas pourquoi il est obsolète ou si quelque chose ne va pas. Il y a peut-être des problèmes de sécurité ou des dépassements de tampon, mais si vous ne l'exposez pas sur un port public, je n'hésiterais pas à l'utiliser.

Voici ce que je fais:

  • Dans IIS, j'ai configuré «SMTP Email» pour le domaine vers lequel pointer 10.0.0.1. Je le fais dans le dossier parent sur tous les sites déployés, sinon il sera effacé lorsque vous redéployez. Si vous le souhaitez, vous pouvez le mettre directement dans web.config mais c'est moins flexible de cette façon.
  • Dans le serveur SMTP (via la console de gestion IIS6), j'ai configuré un serveur SMTP sur 10.0.0.1. Évidemment, comme je l'ai dit auparavant, cela n'est pas exposé sur Internet public.
  • Je configure ce serveur pour relayer via un hôte intelligent via smtp.gmail.comousmtp.live.com
  • Dans mon application .NET, j'utilise l'API Mail pour envoyer un message à l'aide d'un new SmtpClient(). Cela récupère la configuration d'IIS et envoie le courrier à mon serveur SMTP à10.0.0.1
  • Lorsque j'envoie un e-mail, il revient instantanément car il est simplement envoyé à localhost

  • C'est maintenant l'avantage important d'utiliser un serveur SMTP local qui ne peut pas être sous-estimé et pour lequel 'System.Net.Smtp' n'est pas en soi un substitut :

    • Le serveur SMTP essaiera de relayer le courrier via votre smarthost pour vous et s'il ne peut pas l'envoyer immédiatement, il réessaiera plus tard.
    • Il est important de réaliser que parfois même smtp.gmail.comne répond pas ou peut-être que votre réseau est en panne. (Étonnamment commun lorsque j'ai essayé d'envoyer du courrier directement pour la première fois)
    • Sans un serveur SMTP intermédiaire pour stocker les messages, vous ne pouvez pas simplement «envoyer et oublier» à partir de .NET et vous devez trouver une sorte de mécanisme de nouvelle tentative qui est complètement inutile avec un serveur SMTP qui fait tout pour vous.
    • Je crois que si vous avez une limite de relais SMTP (sur votre FAI / GMail), le serveur SMTP continuera simplement à réessayer et enverra les messages le lendemain - un autre avantage énorme si vous avez un trafic incohérent au jour le jour ou que vous atteignez votre limite sans réaliser.

Allez-y et utilisez-le. Microsoft n'a pas fourni de remplacement, et c'est gratuit, alors pourquoi pas. «Obsolète» ne signifie rien à mon avis s'il n'y a pas de remplacement.

Avertissement: je suis toujours sur Server 2008 mais je suppose que tout cela s'applique toujours.

Simon
la source
4
Oui, la même chose s'applique toujours à Windows Server 2012. Je suis toujours surpris de trouver si peu de personnes qui réalisent l'avantage d'utiliser un serveur SMTP local pour mettre les messages en file d'attente!
Richard
1
En plus de la mise en file d'attente, le serveur SMTP vous permet de vous connecter La configuration SMTP dans IIS 8.5 n'offre aucune journalisation, à ma connaissance. Nous ajoutons le serveur SMTP via IIS 6 et disons à IIS 8.5 de se connecter à l'hôte local juste pour obtenir les fichiers journaux du W3C.
Bacon Bits
14

La fonctionnalité SMTP du rôle de serveur Web est obsolète mais n'a pas été supprimée. Vous pouvez l'installer et l'utiliser, mais il est recommandé d'utiliser un autre serveur SMTP (externe).

SMTP et les outils de gestion associés sont obsolètes. Bien que la fonctionnalité soit toujours disponible dans Windows Server 2012, vous devez commencer à utiliser System.Net.Smtp. Avec cette API, vous ne pourrez pas insérer de message dans un fichier à récupérer; configurez plutôt les applications Web pour qu'elles se connectent sur le port 25 à un autre serveur à l'aide de SMTP.

Ainsi, à l'avenir, vous installerez et utiliserez un serveur SMTP distinct (dont il existe de nombreux disponibles) pour fournir des services SMTP aux applications Web exécutées sur Windows ServerX.

joeqwerty
la source
4

Cette description dans l'article auquel vous avez lié est terrible! Mais voici ce qu'il essaie de vous dire:

L'activation de IIS SMTP dans les versions précédentes de Windows a eu deux effets:

  1. Démarré un serveur SMTP IIS.
  2. Ajout de bibliothèques de programmation (c.-à-d. Objets COM, etc.) pour l'envoi de messages.

Si vous utilisiez ces bibliothèques sans aucune configuration, elles seraient soumises au serveur SMTP IIS local. Les programmeurs sont intrinsèquement paresseux, donc puisque cela a fonctionné avec le moins d'effort de leur part, c'est ce qu'ils ont fait. Et beaucoup n'ont pas fourni un moyen d'envoyer des e-mails via un autre serveur SMTP.

L'article devrait dire que le serveur SMTP IIS n'existe plus, mais les bibliothèques SMTP sont toujours fournies et l'application doit être configurée pour utiliser un autre serveur SMTP.

long cou
la source
2
Le serveur SMTP est une fonctionnalité du rôle de serveur Web dans Windows Server 2012 et peut être installé. Il est obsolète mais pas supprimé.
joeqwerty
Je suppose qu'il apparaît toujours sous «console de gestion IIS6», n'est-ce pas?
Simon
2
@Simon Oui, la même bonne vieille console de gestion de 2002 d'IIS 6 est toujours utilisée pour configurer SMTP dans Windows Server 2012. :) La fonction de gestion IIS 6 dépend de la fonction SMTP.
bzlm
1
Ignorez le fléau de la paresse ignorante. Pour plus de détails sur les raisons pour lesquelles un serveur SMTP local est une bonne idée (et standard sur la plupart des autres systèmes d'exploitation - client et serveur), consultez cette réponse .
bzlm
Que diriez-vous de Windows Server 10 ou de son nom? Même affaire?
Simon