Pregunta

Tengo una aplicación asp.net mvc ejecutándose en un sitio web iis local que no puede enviar correo usando SmtpClient desde System.Net.Mail. Estoy tratando de enviar un correo a mi dirección de hotmail y recibo una excepción de socket. ¿Alguna idea de cuál podría ser el 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);
            }

Aquí está la excepción:

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

Creo que el grupo de aplicaciones predeterminado no tiene acceso a intepub \ wwwroot. Aquí está el error que obtengo al intentar probar la conexión:

El servidor está configurado para usar la autenticación de paso con una cuenta integrada para acceder a la ruta física especificada. Sin embargo, el Administrador de IIS no puede verificar si la cuenta integrada tiene acceso. Asegúrese de que la identidad del grupo de aplicaciones tenga acceso de lectura a la ruta física. Si este servidor está unido a un dominio y la identidad del grupo de aplicaciones es NetworkService o LocalSystem, verifique que \ $ tenga acceso de lectura a la ruta física. Luego pruebe esta configuración nuevamente.

¿Fue útil?

Solución

Según sus respuestas a mis comentarios anteriores, Joe, no tiene SMTP habilitado en su máquina local. Vista no viene con SMTP.

Como tal, tendrá que instalar una aplicación SMTP de terceros que se ejecutará en Vista o usar otra aplicación para enviar, en este caso, su cuenta de Hotmail puede permitirle enviar salientes a través de ella. No uso Hotmail, así que no sé si lo hará o no, pero debería ser algo como smtp.hotmail.com y sus credenciales. Mi cuenta principal es una cuenta de gmail, por lo que puedo usarla a través de smtp.gmail.com y, por supuesto, mis credenciales.

Otros consejos

Para el desarrollo en su máquina local, también puede usar una carpeta de colocación:

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

En lugar de intentar configurar SMTP localmente, ¿por qué no solo configura la conexión SMTP para enviar directamente a través de hotmail, simplemente agrega los elementos de configuración a web.config para habilitar todo?

Editar

Creo que este artículo escribí hace un tiempo volver podría ayudarlo.

Intente configurar explícitamente el host del SmtpClient.

Ej:
SmtpClient mailClient = new SmtpClient ();

mailClient.Host = " 127.0.0.1 " ;;

mailClient.Send (mensaje);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top