2008-10-22 21 views
16

Website begann das Leben ursprünglich unter IIS 6 und die Website funktionierte großartig dort. Jetzt, nach dem Umzug auf einen neuen Server mit W2K8S, funktioniert alles außer Mail-Lieferung von der Website jetzt gut unter IIS 7.Einrichten von SMTP unter IIS 7 unter Windows Server 2008

Erforschte kurz im Web, um zu sehen, ob jemand eine gute Auflösung hatte, aber keinen Nutzen ... Nicht einmal ein Hoffnungsschimmer auf Microsofts eigener Support-Seite.

Hier werden die Schritte so weit auf die neue W2K8S Box genommen:

  • Hinzugefügt wird die Funktion für SMTP unter dem Server-Manager
  • Aktiviert SMTP-E-Mail für die Website selbst in IIS 7-Managern zu liefern E-Mail an SMTP-Server lokaler Host, nicht erfolgreich
  • Aktivierte SMTP-E-Mail für die Stammwebsite in IIS 7 Manager (nicht sicher, ob das aktiviert sein muss, um Websites zu aktivieren), um E-Mail an den lokalen SMTP-Server zu senden. erfolglos

Nach dem Scheitern dieser grundlegenden Setups, wollte ich sicher sein, dass ich tatsächlich von/zu Serveron Port 25 sprechen kann. Und ich kann erfolgreich Telnet von/zu dem betreffenden Server zu einer Test-E-Mail an Port 25 ein HELO bekommen, usw. Also glaube ich nicht, dass es ein Firewall-Konfigurationsproblem ist.

Der IIS 7-Setup-Test wurde sowohl mit anonymer als auch mit Windows-Authentifizierung durchgeführt - kein Glück.

Manuell überprüfte Web Config-Datei, die den korrekten Eintrag für den Server zur Verwendung des Localhost widerspiegelt.

Lesen Sie das Handbuch und kein Glück dort entweder ...: -/

+0

Ging durch Einstellungen des IIS 6-Admin-Tool, um SMTP-Zugriff zu konfigurieren und es funktioniert jetzt - also ich denke, wir müssen nur die entsprechenden Sachen im IIS 7 Admin-Tool finden ... Microsoft, muss 'Liebe' em. Nicht. – user30432

+2

Gehört dies nicht zu serverfault? –

+1

Ah ok, vor 9 Monaten gefragt ... macht Sinn –

Antwort

2

Ich konfrontiert das gleiche Problem.

stieß ich auf diesen Link http://www.frontpagewebmaster.com/m-215289/tm.htm

und ich war in der Lage, das Problem zu lösen. Gehe zum letzten Post dieses Links.

In meinem Fall löse ich das Problem, indem ich dem Benutzer "NETWORK SERVICE" Rechte an den "Pickup" -Ordner gebe.

Hope this helfen könnte ....

+0

Darüber hinaus müssen Sie möglicherweise Ihre Application Pool-Identität zu NetworkService ändern (über erweiterte Einstellungen) – robmzd

+3

Dieser Link ist kaputt – Phil

0

Haben Sie überprüft, um zu sehen, ob der SMTP-Dienst E-Mail für Relais von localhost zu akzeptieren? Führen Sie dazu eine Telnet-Verbindung vom betreffenden Computer zum lokalen SMTP-Server aus und verwenden Sie SMTP-Befehle zum Senden einer Testnachricht. Der SMTP-Dienst ist sehr wählerisch bei der Befehlsformatierung, so dass Sie beim Eingeben von Befehlen vorsichtig sein müssen (d. H. Rücktaste nicht zum Korrigieren von Tippfehlern verwenden).

0

Ist dies zufällig eine alte "klassische" ASP-App, die auf CDONTS zum Senden von E-Mails angewiesen ist?

Wenn ja, wäre vielleicht einer von these links hilfreich?

Bearbeitet: Ich hatte geantwortet, bevor ich die Notiz auf dem ursprünglichen Pfosten bemerkte. Außer Acht lassen...

0

Ich stieß auf diesen Post bei der Suche nach SMTP auf meiner ASP.Net-App laufen wir migrieren von IIS6 zu IIS7. Was ich herausfand, war, dass wir den SMTP SERVER überhaupt nicht einrichten mussten - einfach SMTP-E-Mail einzurichten war genug - mit dem zusätzlichen Vorteil, dass wir NICHT die Sicherheitsbedenken haben, dass SMTP über den Webserver weitergeleitet wird!

Wenn Sie also Ihren Webserver nicht benötigen, um das SMTP-Routing tatsächlich durchzuführen, müssen Sie den Server in IIS7 überhaupt nicht einrichten.

1

OK, auf die Post, die sagte "Geben NETWORK USER die Schreibrechte für den Pickup-Ordner" es endlich funktioniert. Was ich tat, war:

  1. Sie benötigen einen „Smarthost“ zu verwenden, es sei denn, Sie Exchange-Server ausgeführt werden. Ich verwende ein Google Mail-Konto, Google Mail ermöglicht SMTP-Weiterleitung.

  2. Sie können die Windows-Authentifizierung für die Sicherheit auf dem SMTP-Server und die IIS7-Konfigurationseinstellung verwenden.

  3. Geben Sie als ersten Schritt die Bereitstellungsmethode = "Netzwerk" in Ihre Webseite ein und lassen Sie Ihren Smarthost unabhängig vom SMTP-Server konfigurieren.

    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; 
    

    Dies wird die E-Mail direkt senden und umgehen Sie Ihren SMTP-Server.

  4. Zweiter Schritt, sobald Sie haben, dass die Arbeit, um eine Probe Windows-Anwendung schreiben Sie Ihre SMTP-Server unabhängig von Ihrer Webseite zu verwenden, und dass die Arbeit bekommen.

    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 
    

    Dies wird Ihre Webseite umgehen und sicherstellen, dass Sie Ihren SMTP-Server ordnungsgemäß konfiguriert haben.

  5. Schließlich können Sie Ihre Webseite zum Laufen bringen, indem Sie die Freigabe für Ihren Abholordner so einstellen, dass der Schreibzugriff auf NETWORK_SERVICE möglich ist. Übertragen Sie die Anmeldeinformationen aus Schritt 3 in Ihre SMTP-Einstellungen, legen Sie die Authentifizierung auf integrierte Sicherheit fest und verwenden Sie den Code in Schritt 4 für Ihre Webseite.

1

Ich hatte genau das gleiche Problem wie in dieser alten Frage beschrieben. Endlich habe ich eine Lösung gefunden. In meinem Fall ist das Betriebssystem W2008 R2 mit IIS 7.5, aber das ist egal.

Das zugrundeliegende Problem ist, dass der SMTP-Dienst in W2008 R2 ein Legacy-Teil des IIS zu sein scheint. Es wird mit den IIS 6.0-Verwaltungstools neben dem IIS 7.X-Server installiert. Dies führt zu zwei abgeleiteten Problemen:

IIS 7.X weiß nichts über den SMTP-Dienst. Wenn Sie SMTP in ASP.NET für die Verwendung von PickupDirectoryFromIis konfigurieren, führt dies zu einer Ausnahme.Daher können Sie verwenden diese SMTP-Konfiguration nicht:

<smtp deliveryMethod="PickupDirectoryFromIis" /> 

Aber ist es möglich, SMTP konfigurieren mit SpecifiedPickupDirectory, Sie diese Konfiguration verwenden können:

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

Wenn Sie das Pickup-Verzeichnis konfigurieren Auf diese Weise können Sie auf eine zweite Art von Problem stoßen: IIS6 und IIS7.X haben unterschiedliche Sicherheitssysteme. IIS 7.X führt integrierte Sicherheit mit Anwendungspoolidentitäten ein. IIS 6.0 und sein SMTP-Dienst kennen das nicht. Daher müssen Sie dem Abholordner Schreibberechtigungen für IIS_IUSRS erteilen. In meiner Konfiguration ist der Abholordner C: \ inetpub \ mailroot \ pickup.

1

Ich bemerkte, dass die Ereignis-ID 4006 auf den Domänencontroller IP anstelle des Mailservers IP verweist. Ich habe das iis 6-Admin-Tool verwendet, um einen Smarthost zu konfigurieren, der auf den Mail-Server verweist, und voila! Das Problem wurde behoben.

Verwandte Themen