Question

Une application mvc asp.net s'exécutant sur un site Web iis local ne parvient pas à envoyer de courrier à l'aide de SmtpClient à partir de System.Net.Mail. J'essaye d'envoyer un mail à mon adresse hotmail et j'obtiens une exception de socket. Avez-vous une idée du problème?

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

Voici l'exception:

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

Je pense que le pool d'applications par défaut n'a pas accès à intepub \ wwwroot. Voici l'erreur que je reçois en essayant de tester la connexion:

Le serveur est configuré pour utiliser l'authentification unique avec un compte intégré pour accéder au chemin physique spécifié. Toutefois, le gestionnaire IIS ne peut pas vérifier si le compte intégré est accessible. Assurez-vous que l'identité du pool d'applications dispose d'un accès en lecture au chemin physique. Si ce serveur est associé à un domaine et que l'identité du pool d'applications est NetworkService ou LocalSystem, vérifiez que \ $ dispose d'un accès en lecture sur le chemin physique. Puis testez à nouveau ces paramètres.

Était-ce utile?

La solution

D'après vos réponses à mes commentaires ci-dessus Joe, vous n'avez pas activé le protocole SMTP sur votre ordinateur local. Vista ne vient pas avec SMTP.

En tant que tel, vous devrez soit installer une application SMTP tierce qui s'exécutera sous Vista, soit utiliser une autre application pour l'envoyer via. Dans ce cas, votre compte Hotmail peut vous permettre d'envoyer des messages sortants via celle-ci. Je n'utilise pas Hotmail, donc je ne sais pas s'il le fera ou non, mais cela devrait être quelque chose comme smtp.hotmail.com et vos identifiants. Mon compte principal est un compte Gmail, je peux donc l'utiliser via smtp.gmail.com et bien sûr avec mes informations d'identification.

Autres conseils

Pour le développement sur votre ordinateur local, vous pouvez également utiliser un dossier de dépôt:

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

Plutôt que d'essayer de configurer le protocole SMTP localement, pourquoi ne pas configurer la connexion SMTP pour qu'elle l'envoie directement via Hotmail, ajoutez simplement les éléments de configuration au composant web.config pour tout activer.

Modifier

Je pense que cet article que j'ai écrit quelque temps retour pourrait vous aider.

Essayez de définir explicitement l'hôte du serveur SmtpClient.

Ex:
SmtpClient mailClient = new SmtpClient ();

mailClient.Host = " 127.0.0.1 " ;;

mailClient.Send (message);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top