Frage

Ich habe eine asp.net Mvc-Anwendung auf einem lokalen iis Webseite ausgeführt wird, die E-Mail senden versagt mit SmtpClient von System.Net.Mail. Ich versuche, eine Mail an meine hotmail-Adresse zu senden und ich bekomme eine Steckdose Ausnahme. Jede Idee, was das Problem sein könnte?

using(var message = new MailMessage())
            {
                message.From = new MailAddress(AdminEmail);
                message.To.Add(new MailAddress(to));
                message.Subject = subject;
                message.Body = body;
                message.IsBodyHtml = false;

                var mailClient = new SmtpClient();
                mailClient.Send(message);
            }

Hier ist die Ausnahme:

{System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:25
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)}

ich denke, der Standard-App-Pool hat keinen Zugang zu Intepub \ wwwroot. Hier ist der Fehler, den ich beim Versuch die Verbindung zu testen:

Der Server ist konfiguriert, um mit einem integrierten Konto Passthrough-Authentifizierung zu verwenden, um den angegebenen physikalischen Pfad zuzugreifen. Allerdings kann IIS-Manager nicht überprüfen, ob die integrierte Konto Zugriff hat. Stellen Sie sicher, dass die Anwendungspoolidentität Zugriff auf den physischen Pfad gelesen hat. Wenn dieser Server zu einer Domäne verbunden ist, und die Anwendungspoolidentität ist NetworkService- oder Localsystem sicher, dass \ $ Zugriff auf den physischen Pfad gelesen hat. Dann wieder diese Einstellungen testen.

War es hilfreich?

Lösung

Auf der Grundlage Ihrer Antworten auf meine Kommentare über Joe, die Sie nicht haben SMTP auf dem lokalen Computer aktiviert. Vista nicht mit SMTP kommen.

Als solche werden Sie entweder ein 3rd-Party-SMTP-App installieren, die auf Vista laufen werden, oder ein andere App verwenden über zu senden, in diesem Fall Ihr Hotmail-Konto können Sie erlauben, über es ausgehend zu senden. Ich Hotmail nicht so verwenden, weiß nicht, ob es will oder nicht, aber es sollte so etwas wie smtp.hotmail.com und Ihre Anmeldeinformationen sein. Mein primäres Konto ist ein Google Mail-Konto, so dass ich es über smtp.gmail.com verwenden kann und natürlich mein Beglaubigungsschreiben.

Andere Tipps

Für die Entwicklung auf dem lokalen Rechner, können Sie auch einen Ablageordner verwenden:

http://www.codersbarn.com /post/2008/11/30/ASPNET-Contact-Form.aspx

Anstatt lokal einrichten SMTP versuchen, warum Sie nicht nur die SMTP-Verbindung konfigurieren direkt über hotmail zu schicken, nur um die Konfigurationselemente der web.config hinzufügen, alles zu ermöglichen.

Bearbeiten

Ich denke, dieser Artikel , dass ich eine Weile geschrieben zurück Das könnte Ihnen helfen.

Versuchen Sie explizit den Host des SmtpClient Einstellung.

Ex:
SmtpClient Mailclient = new SmtpClient ();

mailClient.Host = "127.0.0.1";

mailClient.Send (Nachricht);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top