当 ASP.NET 遇到错误时,我正在使用Elmah的 errorMail 功能发送电子邮件。它允许您配置 SMTP 设置以及硬编码发件人、收件人和主题。
我的问题是:我可以使用动态主题吗?具体来说,我想使用 Exception.Message 属性作为我的主题,这样我就可以从电子邮件的主题行中判断错误是什么。
没有文档,从源代码的快速扫描看来,如果不修改代码是不可能的,但我想我还是会问这个问题。
相关源代码:
当 ASP.NET 遇到错误时,我正在使用Elmah的 errorMail 功能发送电子邮件。它允许您配置 SMTP 设置以及硬编码发件人、收件人和主题。
我的问题是:我可以使用动态主题吗?具体来说,我想使用 Exception.Message 属性作为我的主题,这样我就可以从电子邮件的主题行中判断错误是什么。
没有文档,从源代码的快速扫描看来,如果不修改代码是不可能的,但我想我还是会问这个问题。
相关源代码:
嗬!答案在ErrorMailModule.cs 的第 454 行:
string subjectFormat = Mask.EmptyString(this.MailSubjectFormat, "Error ({1}): {0}");
mail.Subject = string.Format(subjectFormat, error.Message, error.Type)
.Replace('\r', ' ')
.Replace('\n', ' ');
我以这种方式更改了 web.config 文件中的电子邮件主题:
<errorMail from="..." subject="Some subject: {0}">
其中 {0} 将是异常消息。
您可以查看这篇文章以获取更多详细信息http://weblogs.asp.net/jeffwids/format-the-email-subject-in-the-elmah-error-logging-module