【发布时间】:2011-01-07 13:37:05
【问题描述】:
我有一个在后台运行的线程,当有东西唤醒它时,它会休眠并从数据库中提取数据。我正在使用 SmtpClient(下面的代码)使用谷歌应用程序发送电子邮件。
我想知道有什么我需要注意的吗?我计划一次只发送一封电子邮件(注册或忘记密码的电子邮件)。我有点担心会发生一些事情,比如一封无效的电子邮件会锁定线程,因为我没有设置超时,或者谷歌应用程序碰巧完成并导致应用程序崩溃。我应该注意什么?我应该问我应该如何测试?
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential(fromAddr, pass),
EnableSsl = true
};
MailMessage mail = new MailMessage(fromAddr, toAddr, subject, body);
mail.IsBodyHtml = true;
client.Send(mail);
【问题讨论】:
-
有什么原因你不能从唤醒它的“触发”发生的地方调用这个逻辑。如果您尝试发送密码重置但它失败了,作为用户,我可能想知道这一点并看到一个很好的错误,说明它失败了,所以我不会坐下来刷新我的收件箱等待它。处理用户请求和发送所有请求的轻微延迟可能值得消除必须发出信号的复杂性。
标签: c# asp.net email smtp google-apps