1 votes

SmtpClient.SendAsync() ne fonctionne plus

J'ai récemment acheté un nouvel ordinateur, et maintenant mes e-mails ne sont jamais envoyés, et il n'y a JAMAIS d'exceptions lancées ou quoi que ce soit.

Quelqu'un peut-il fournir des exemples qui fonctionnent en utilisant la classe SmtpClient ? Toute aide sera grandement appréciée.

Merci.

Mises à jour


Ok - J'ai ajouté les informations d'identification maintenant. Et je peux SUCCESSIVEMENT ENVOYER des e-mails de manière synchrone. Mais je ne peux toujours pas les envoyer de manière asynchrone.

Ancien : Après avoir essayé d'envoyer des e-mails de manière synchrone, je reçois l'exception suivante :

La transaction a échoué. La réponse du serveur était :

5.7.1 <myfriend@hotmails.com> : Accès au relais refusé.

1voto

Duk Points 470

Vous pouvez envoyer du courrier par Async(). Pour cela, vous devez suivre le code ci-dessous,

smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);
smtpClient.SendAsync(mailMessage, mailMessage);

et, si vous utilisez l'asynchronisme, vous devez également avoir le gestionnaire d'événement comme,

static void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        //to be implemented        
    }

En l'utilisant, vous pouvez envoyer du courrier.

0voto

Darin Dimitrov Points 528142

Vous pouvez d'abord essayer la méthode synchrone Envoyer pour vérifier que tout est correctement configuré avec le serveur SMTP et que vous ne recevez pas d'exceptions :

var client = new SmtpClient("smtp.somehost.com");
var message = new MailMessage();
message.From = new MailAddress("from@somehost.com");
message.To.Add(new MailAddress("to@somehost.com"));
message.Subject = "test";
message.Body = "test body";
client.Send(message);

Remarques : Dans .NET 4 SmtpClient met en œuvre IDisposable alors assurez-vous de l'emballer dans un en utilisant déclaration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X