如何发送带有错误消息详细信息的电子邮件





0/5 (0投票)
如何发送带有错误消息详细信息的电子邮件有时需要处理错误并将其发送给技术支持以处理错误并发送解决方案至
如何发送带有错误消息详细信息的电子邮件
有时需要处理错误并将其发送给技术支持人员,然后由技术支持人员处理错误并将解决方案发送给客户。无论如何,我们将使用全局应用程序类 Global.asax 来编写我们的代码,如下所示
void Application_Error(object sender, EventArgs e)
{
// 当发生未处理的错误时运行的代码
Response.Write("<h2>错误页面</h2>");
// 获取异常详细信息
Exception exc = Server.GetLastError();
Response.Write("对于可能给您带来的不便,我们深感抱歉。");
Response.Write("<b>错误消息</b><p>" + exc.Message + "</p><br>");
// 从服务器清除错误
Server.ClearError();
// 报告给管理员
string url = HttpContext.Current.Request.Url.AbsoluteUri;
string MailBody = "网站用户在您的网站上体验不佳。请查看以下详细信息:<br><br>";
MailBody = MailBody + "<br><br><b>错误页面(目标网页):</b>" + url;
MailBody = MailBody + "<br><br><b>网页上的链接(来源网页):</b>" + Request.UrlReferrer;
MailBody = MailBody + "<br><br><b>错误消息:</b>" + exc.Message;
MailBody = MailBody + "<br><br><b>跟踪消息:</b>" + exc.StackTrace;
// 其他基于浏览器的内容
MailBody = MailBody + "<br><br><b>平台:</b>" + Request.Browser.Platform;
MailBody = MailBody + "<br><br><b>浏览器:</b>" + Request.Browser.Browser;
MailBody = MailBody + "<br><br><b>浏览器类型:</b>" + Request.Browser.Type;
MailBody = MailBody + "<br><br><b>浏览器版本:</b>" + Request.Browser.Version;
string MailResponse = sendmail("yourmail@gmail.com", "不良体验", MailBody);
Response.Write("<br><br><b>注意:</b>" + MailResponse.ToString());
}
private string sendmail(string ToEmailAdd, string MailSubject, string MailMessageHTMLString)
{
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add(new System.Net.Mail.MailAddress(ToEmailAdd));
message.From = new System.Net.Mail.MailAddress("yourmail@gmail.com", "Smart");
message.Subject = MailSubject;
message.Body = MailMessageHTMLString;
message.IsBodyHtml = true;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Port = 587;
client.Host = "smtp.gmail.com";
// client.EnableSsl = true;
System.Net.NetworkCredential nc = new System.Net.NetworkCredential("yourmail@gmail.com", "你的密码");
//client.UseDefaultCredentials = false;
client.Credentials = nc;
try
{
client.Send(message);
return "自动系统成功将此问题报告给管理员。";
}
catch
{
return "自动系统未能将此问题报告给管理员。";
}
}