Annuler l'envoi d'un mail en cours

F2ATA Messages postés 21 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 février 2011 - 11 sept. 2008 à 19:28
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 14 sept. 2008 à 10:32
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

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
12 sept. 2008 à 12:43
Salut,

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

???
0
F2ATA Messages postés 21 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 février 2011
12 sept. 2008 à 13:52
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!!
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 sept. 2008 à 10:32
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-
0
Rejoignez-nous