Domanda

Ho un'app Asp.net mvc in esecuzione su un sito Web iis locale che non riesce a inviare posta utilizzando SmtpClient da System.Net.Mail. Sto cercando di inviare una mail al mio indirizzo hotmail e ricevo un'eccezione socket. Hai idea di quale potrebbe essere il problema?

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);
            }

Ecco l'eccezione:

{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)}

Penso che il pool di app predefinito non abbia accesso a intepub \ wwwroot. Ecco l'errore che provo quando provo a testare la connessione:

Il server è configurato per utilizzare l'autenticazione pass-through con un account integrato per accedere al percorso fisico specificato. Tuttavia, Gestione IIS non può verificare se l'account incorporato ha accesso. Assicurarsi che l'identità del pool di applicazioni abbia accesso in lettura al percorso fisico. Se questo server è unito a un dominio e l'identità del pool di applicazioni è NetworkService o LocalSystem, verificare che \ $ abbia accesso in lettura al percorso fisico. Quindi prova nuovamente queste impostazioni.

È stato utile?

Soluzione

In base alle tue risposte ai miei commenti sopra Joe, non hai abilitato SMTP sul tuo computer locale. Vista non viene fornito con SMTP.

Pertanto, dovrai installare un'app SMTP di terze parti che verrà eseguita su Vista o utilizzare un'altra app per inviare tramite, in questo caso il tuo account Hotmail potrebbe consentire di inviare in uscita tramite di essa. Non utilizzo Hotmail, quindi non so se lo farà o meno, ma dovrebbe essere qualcosa come smtp.hotmail.com e le tue credenziali. Il mio account principale è un account Gmail, quindi posso usarlo tramite smtp.gmail.com e, naturalmente, le mie credenziali.

Altri suggerimenti

Per lo sviluppo sul tuo computer locale, puoi anche utilizzare una cartella di rilascio:

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

Invece di provare a configurare SMTP localmente, perché non configurare semplicemente la connessione SMTP per inviare direttamente tramite hotmail, basta aggiungere gli elementi di configurazione a web.config per abilitare tutto.

Modifica

Penso che questo articolo che ho scritto un po ' indietro potrebbe aiutarti.

Prova a impostare esplicitamente l'host di SmtpClient.

Ex:
SmtpClient mailClient = new SmtpClient ();

mailClient.Host = " 127.0.0.1 " ;;

mailClient.Send (messaggio);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top