web-dev-qa-db-fra.com

Configuration de SMTP sous IIS 7 sur Windows Server 2008

Le site Web a vu le jour à l'origine sous IIS 6 et le site y fonctionnait parfaitement. Désormais, après le transfert sur un nouveau serveur exécutant W2K8S, tout, à l'exception de la distribution du courrier à partir du site Web, fonctionne désormais très bien sous IIS 7.

J'ai brièvement cherché sur le Web pour voir si quelqu'un avait une bonne résolution, mais en vain ... Pas même une lueur d'espoir sur le site de support de Microsoft.

Voici les mesures prises jusqu'à présent sur le nouveau boîtier W2K8S:

  • Ajout de la fonctionnalité pour SMTP sous le gestionnaire de serveur
  • Activation de l'e-mail SMTP pour le site lui-même dans IIS 7 Manager afin d'envoyer l'e-mail au serveur local SMTP, en cas d'échec
  • Activation de la messagerie SMTP pour le site racine dans IIS 7 Manager (ne sais pas si cela doit être activé pour activer les sites) pour remettre le courrier électronique à l'hôte local du serveur SMTP, en cas d'échec

Après avoir échoué dans ces configurations de base, je voulais être sûr de pouvoir réellement parler de/vers le serveur 25 sur le serveur 25. Et je peux réussir à établir une connexion telnet de/vers le serveur en question à un e-mail de test sur le port 25, obtenir un HELO, etc. Donc, je ne crois pas qu'il s'agisse d'un problème de configuration de pare-feu.

Le test d’installation de IIS 7 a été réalisé avec une authentification anonyme et une authentification Windows.

Le fichier Web Config est vérifié manuellement et il reflète l'entrée correcte pour que le serveur utilise l'hôte local.

Lisez le manuel et là non plus aucune chance ...: - /

16
user30432

J'ai rencontré le même problème. 

Je suis tombé sur ce lien http://www.frontpagewebmaster.com/m-215289/tm.htm

et j'ai pu résoudre le problème. Aller au dernier message de ce lien.

Dans mon cas, je résous le problème en donnant des droits à l'utilisateur "NETWORK SERVICE" dans le dossier "Pickup". 

J'espère que cela pourrait aider ....

2
Rajeev

J'ai remarqué que l'ID d'événement 4006 faisait référence à l'ip du contrôleur de domaine au lieu de l'ip du serveur de messagerie… .. J'ai utilisé l'outil d'administration iis 6 pour configurer un smarthost pointant vers le serveur de messagerie et le tour est joué! le problème était résolu.

1
Njuki

OK, à la publication qui dit "donnez à l’UTILISATEUR DE RÉSEAU les droits d’écriture sur le dossier de collecte" il fonctionne enfin. Ce que j'ai fait était:

  1. Vous devez utiliser un "hôte intelligent" sauf si vous utilisez Exchange Server. J'utilise un compte Gmail, Gmail permet le transfert SMTP.

  2. Vous pouvez utiliser l'authentification Windows pour la sécurité sur le serveur SMTP et le paramètre de configuration IIS7.

  3. Première étape, définissez le mode de livraison = "réseau" dans votre page Web et configurez votre hôte intelligent indépendamment du serveur SMTP.

    SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.UseDefaultCredentials = false; // use your smart Host login client.Credentials = new NetworkCredential("[email protected]", "password");
    client.EnableSsl = true;
    

    Cela enverra le courrier directement et contournera votre serveur SMTP.

  4. Deuxième étape, une fois que cela fonctionne, écrivez un exemple d'application Windows pour utiliser votre serveur SMTP indépendamment de votre page Web, et obtenez le même résultat.

    SmtpClient client = new SmtpClient("your server ip", 25);
    client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
    client.EnableSsl = false; // you can't use ssl with a pickup folder
    client.UseDefaultCredentials = true; // use windows credentials
    

    Cela contournera votre page Web et assurera que votre serveur SMTP est configuré correctement.

  5. Enfin, pour que votre page Web fonctionne, définissez le partage dans votre dossier de collecte afin de permettre un accès en écriture à NETWORK_SERVICE. Transférez les informations de connexion de l'étape 3 dans vos paramètres SMTP, définissez l'authentification sur sécurité intégrée et utilisez le code de l'étape 4 pour votre page Web.

1
john

J'ai eu exactement le même problème que décrit dans cette vieille question. Finalement, j'ai trouvé une solution. Dans mon cas, le système d’exploitation est W2008 R2 avec IIS 7.5, mais j’estime que cela importe peu.

Le problème sous-jacent est que le service SMTP dans W2008 R2 semble être une partie héritée d'IIS. Il est installé avec les outils d'administration IIS 6.0, côte à côte avec le serveur IIS 7.X. Cela provoque deux problèmes dérivés:

IIS 7.X ne sait rien du service SMTP. Si vous configurez SMTP dans ASP.NET pour utiliser PickupDirectoryFromIis, il en résulte une exception. Vous ne pouvez donc pas utiliser cette configuration SMTP :

<smtp deliveryMethod="PickupDirectoryFromIis" />

Mais il est possible de configurer SMTP avec SpecifiedPickupDirectory, Vous pouvez utiliser cette configuration :

<smtp deliveryMethod="SpecifiedPickupDirectory">
    <specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\Pickup"  />
</smtp>

Si vous configurez le répertoire de collecte de cette manière, vous risquez de rencontrer un autre type de problème: IIS6 et IIS7.X ont des systèmes de sécurité différents. IIS 7.X introduit la sécurité intégrée avec les identités du pool d'applications. IIS 6.0 et son service SMTP ne le savent pas. Par conséquent, vous devez accorder des autorisations en écriture pour IIS_IUSRS au dossier de collecte. Dans ma configuration, le dossier de collecte est C:\inetpub\mailroot\pickup.

1
Dirk Brockhaus

S'agit-il, par hasard, d'une ancienne application "classique" ASP s'appuyant sur CDONTS pour l'envoi de courrier?

Si oui, peut-être que l'un des ces liens serait utile? 

Edited: j'avais répondu avant de remarquer la note sur le message d'origine. Ignorer ...

0
Chris K

Je ne suis pas sûr si cet outil de diagnostic peut fournir plus d'informations,

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1308

Cet outil est pour x86.

0
Lex Li

Je suis tombé sur ce message lorsque je cherchais à faire fonctionner SMTP sur mon application ASP.Net lors de la migration d'IIS6 vers IIS7. Ce que j’ai trouvé, c’est que nous n’avions pas du tout besoin de configurer le serveur SMTP - il suffisait simplement de configurer la messagerie SMTP - avec l’avantage supplémentaire de NE PAS avoir les problèmes de sécurité liés au relais SMTP via le serveur Web!

par conséquent, si vous n'avez pas besoin de votre serveur Web pour effectuer le routage SMTP, vous n'avez pas du tout besoin de configurer le serveur dans IIS7.

0
n8wrl

Avez-vous vérifié si le service SMTP acceptait le courrier pour le relais de localhost? Pour ce faire, connectez Telnet de la machine en question au serveur SMTP local et utilisez les commandes SMTP pour envoyer un message de test. Le service SMTP est très pointilleux en ce qui concerne le formatage des commandes, vous devez donc faire attention lorsque vous entrez des commandes (c.-à-d. N'utilisez pas de retour arrière pour corriger les erreurs typographiques).

0
kevintechie