Je suis en train de mettre à jour un ancien code pour l'intégrer à SQL. Je travaille pour une entreprise qui envoie occasionnellement des courriels en masse, ce qui ralentit considérablement le serveur de messagerie. Nous voulons mettre les courriels en file d'attente dans la base de données s'ils commencent à s'accumuler. En testant certaines modifications du code, j'ai remarqué que je recevais l'e-mail et que le client était toujours en attente. Cela pose des problèmes car le client place alors l'e-mail dans la file d'attente et je le reçois plus tard lorsqu'un autre service tente de nettoyer la base de données.
SmtpClient emailClient = new SmtpClient(Settings.SmtpServer);
emailClient.Timeout = 100;
bool sent = false;
try
{
using (Impersonate imp = DA.GetImpersonator())
{
emailClient.Send(message);
sent = true;
}
}
catch (SmtpException) { }
finally
{
if (sent)
{
email.IsSent = true;
DA.Save(email);
}
}
Sur 10 essais, 9 ont échoué, 1 a réussi ; j'ai reçu 7 courriels.