vik*_*ben 0 c# asp.net email asynchronous
这是我尝试使用SendAsync()方法发送电子邮件.通过bool发送常规电子邮件时,它工作正常.使用SendAsync方法发送时没有骰子.如果你在这里看到错误,只是寻找一些提示.提前致谢.
private static void SendEmail(System.Net.Mail.MailMessage m, Boolean Async)
{
using (var smtpClient = new System.Net.Mail.SmtpClient(EmailList.SMTP_GOOGLE, 587))
{
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("email@domain.com","password");
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtpClient.Timeout = 3000000;
if (Async)
{
object userState = m;
smtpClient.SendCompleted += new SendCompletedEventHandler(Smtp_OnComplete);
try
{
smtpClient.SendAsync(m, userState);
}
catch (Exception ex)
{
//Logging
}
}
else
{
try
{
smtpClient.Send(m);
}
catch (Exception ex)
//Logging
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 11
您的using语句SmtpClient在异步发送完成之前处理.
那不行.
相反,您可以使用C#5 await等待异步发送在using语句内完成,或者using完全摆脱异步发送并将其SmtpClient置于完成事件中.
| 归档时间: |
|
| 查看次数: |
2628 次 |
| 最近记录: |