2010-05-19 8 views
2

J'utilise des formulaires Web ASP.NET,Comment envoyer un email en arrière-plan dans AsP.NET?

Lorsqu'un utilisateur dirigé vers une page, un courriel sera envoyé à de nombreuses personnes qui ralentit le post-retour,

quelle est la meilleure façon d'envoyer le emails sans ralentir le rechargement de la page?

grâce

+0

Quelle version de .Net êtes-vous? La réponse pour 4.0 serait différente de 3.5. –

+0

Sur mon PC est 4. mais j'avais besoin pour 3,5 – Bart

Répondre

7

Vous pouvez utiliser la classe System.Net.Mail.SmtpClient envoyer l'e-mail en utilisant le SendAsync() méthode.

var smtpClient = new SmtpClient(); 
var message = new MailMessage(fromAddress, toAddress, subject, body); 
smtpClient.SendCompleted += new SendCompletedEventHandler(OnSendCompletedCallback); 
smtpClient.SendAsync(message, null); // Null Or pass a user token to be send when the send is complete 

Si vous avez besoin pour gérer effectuer quelques trucs supplémentaires après l'envoi async est terminée, vous pouvez vous abonner à la SendCompleted cas de SmtpClient ainsi.

private void OnSendCompletedCallback(object sender, AsyncCompletedEventArgs e) 
{ 
    // Handle the callback if you need to do anything after the email is sent. 
} 

Here est un lien vers la documentation sur MSDN.

2

J'ai trouvé à moins que vous construisiez un très petit site Web, il est presque toujours préférable d'envoyer du courrier à partir d'un service Windows distinct.

Votre frontal Web enregistre le courrier à envoyer dans votre base de données, par exemple. Cela a un bon effet secondaire de vous permettre également de développer un dossier envoyé, boîte d'envoi, etc Votre service Windows interroge la table de courrier et fait l'envoi réel. L'envoi de courrier peut entraîner de nombreuses exceptions, peut être lent, peut entraîner un dépassement de délai, des processus hôtes générés, etc. Le traitement en arrière-plan est très logique dans de nombreuses situations. Pour plus d'informations sur Windows Services

+0

en fait C'est un petit site web, merci pour le pourboire – Bart

Questions connexes