Envoye mail de facon asysnchrone
Bonjour,
j'essaye d'envoyer mes mails de facon asynchrone. Pour cela j'ai ecrit le code suivant.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| /// <summary>
/// Envoye le mail
/// </summary>
/// <param name="corps"></param>
/// <returns></returns>
public bool Envoye(string corps)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(Expediteur);
message.Subject = Sujet;
message.Body = corps;
message.Priority = MailPriority.High;
foreach (string dest in Destinaires)
{
message.CC.Add(dest);
}
SmtpClient client = new SmtpClient(Urlsmtp, Port);
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
client.SendAsync(message, string.Empty );
try
{
// client.Send(message);
//client.SendAsync(message, null);
}
catch (Exception ex)
{
EnregistreEvenement monevent = new EnregistreEvenement();
monevent.EEecrire("Erreur envoye mail" + ex.ToString());
return false;
}
return true;
}
/// <summary>
/// Gestion envoye mail de facon asynchrone
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
if (e.Error != null)
{
EnregistreEvenement monevent = new EnregistreEvenement();
monevent.EEecrire("Erreur envoye mail" + e.Error.ToString());
}
else
{
EnregistreEvenement monevent = new EnregistreEvenement();
monevent.EEecrire("envoye mail" + e.Error.ToString());
}
} |
Quand j'utilse client.Send(message); les messages sont transmis sans probleme.
Par contre des que j'essaye client.SendAsync(message, string.Empty ); ca ne marche plus et je leve l'exception suivante:
Code:
1 2 3 4 5 6 7
| Description*:
Cree le 10/12/2008 17:25:47 10/12/2008 17:25:47 Erreur envoye mailSystem.Net.Mail.SmtpException: Échec d'envoi du courrier. ---> System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à System.Net.Mail.Message.BeginSend(BaseWriter writer, Boolean sendEnvelope, AsyncCallback callback, Object state)
à System.Net.Mail.SmtpClient.SendMailCallback(IAsyncResult result)
--- Fin de la trace de la pile d'exception interne ---
Pour plus d'informations, consultez le centre Aide et support à l'adresse http://go.microsoft.com/fwlink/events.asp. |
Et la franchement je bloque je vois pas de quel objet il parle... :s
Merci d'avance pour votre aide