Annuler l'envoi d'un mail en cours

Signaler
Messages postés
21
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 février 2011
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonsoir,
j'ai développé une application avec laquelle j'envoie des mails. dont voici un bout de code que présente comment je je fais :
using System;
using System.Net;
using System.Net.Mail;
....
private void EnvoyerMail()
{
    MailMessage mail = new MailMessage();
    SmtpClient smtp = new SmtpClient();
  
    mail.From = new MailAdress("...");
    mail.To.Add(new MailAdress("...."));
    mail.Subject  = "....";
          ........
    smtp.Host =.....
    smtp.Port =....
  
    smtp.SendAsync(mail, "envoi de mail");
}

J'aimerais pouvoir annuler l'envoi du message qui est en cours. Si quelqu'un sais comment faire ça, merci de m'aider.

Cordialement!!

3 réponses

Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
7
Salut,

Tu as essayé avec :
smtp.SendAsyncCancel();

???
Messages postés
21
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 février 2011

Oui, j'ai essayé mais ça ne marche pas.
Si j'appelle la méthode .SendAsyncCancel() immédiatement après l'envoi, ça marche. Mais si j'attends un petit instant avant l'appelle de la méthode, le mail est il me signal que l'envoi est annulé mais le message est quand même transmis.

J'utilise aussi la procedure suivante :

private void MailSendCompleted(object sender, AsyncCompletedEventArgs e)
{    if ( e.Error null && e.Cancel false)
            Messagebox.Show("Message envoyé");
    else if (e.Error != null)
           Messagebox.Show("Erreur lors de l'envoi du message");
    else
          Messagebox.Show("L'envoi du message a été annulé");
}

En réalité, ce je voudrais vraiment, c'est que l'on puisse interrompre l'envoi du mail à n'importe quel moment sans qu'il ne soit transmis.

Merci de vous préoccuper de mon problème!!
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut,
Probablement que lorsque tu interromps l'envois, le processus est déjà trop avancé pour être stoppé.
Voire http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.sendasynccancel.aspx

<hr />
-My Blog-