【发布时间】:2012-02-05 23:05:11
【问题描述】:
我正在尝试构建一个用于从我的网站发送新闻通讯的系统。
我将它构建为一个控制台应用程序,然后我将每天从 Windows 调度程序执行。
我想在系统中有一些日志,所以我添加了最简单的日志“功能”。
邮件发送正常,但我想在发送邮件时写在日志中。问题是我不知道在发送邮件或未发送邮件时如何从 SmtpClient 获取事件。
public void SendMails(List<Agent> agents, string logfilename)
{
foreach (Agent agent in agents)
{
MailMessage mail = new MailMessage();
mail.....
SmtpClient client = new SmtpClient();
client.....
try
{
client.Send(mail);
WriteLog(logfilename, "Sent mail to: " + mail.To[0].Address);
}
catch (SmtpException smtpexception)
{
WriteLog(logfilename, "SMTP EXCEPTION: " + smtpexception.Message);
}
catch (Exception e)
{
WriteLog(logfilename, "EXCEPTION: " + e.Message);
}
}
}
public void WriteLog(string filename, string message)
{
TextWriter tw = new StreamWriter(@"c:\MailLogs\" + filename + ".txt");
tw.WriteLine(message);
tw.Close();
}
那么,我要怎么改代码,让程序真正知道邮件有没有发送之后再写日志……
【问题讨论】:
标签: c# .net-4.0 smtpclient