科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET 2.0发送电子邮件全面剖析之二

ASP.NET 2.0发送电子邮件全面剖析之二

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本篇将讨论与电子邮件相关的更高级的选项。我们要分析如何发送HTML格式的电子邮件

作者:朱先忠编译 来源:天极软件 2007年11月6日

关键字: Windows

  • 评论
  • 分享微博
  • 分享邮件
四、处理SMTP异常

  当从一个ASP.NET页面发送电子邮件时,如果中继服务器关闭会发生什么?如果认证信息使用无效,又会怎么样呢?在出现一个SMTP错误时,SmtpClient类将抛出一个SmtpException异常。为了较好地处理这样的问题,我们可以在发送电子邮件的代码中加入异常处理代码。如果出现一个SmtpException,则我们能够显示一个更友好的信息性的错误提示。

  在本文的下载内容中,我包括了一个演示,它允许访问者指定要使用的中继服务器以及认证信息。如果在试图发送一封电子邮件时存在一个错误,那么将显示一个客户端警告框,解释该问题。为了测试这一点,对于一个需要认证的中继服务器,你可以输入一个无效的中继服务器主机名或无效的凭证。

Try
 '(1)创建MailMessage实例
 Dim mm As New MailMessage(FromEmailAddress, ToEmailAddress)
 '(2)赋值MailMessage的属性
 mm.Subject = "Test Email... DO NOT PANIC!!!1!!!111!!"
 mm.Body = "This is a test message..."
 mm.IsBodyHtml = False
 '(3)创建SmtpClient对象
 Dim smtp As New SmtpClient
 'SMTP设置...
 smtp.Host = Hostname.Text
 If Not String.IsNullOrEmpty(Port.Text) Then
  smtp.Port = Convert.ToInt32(Port.Text)
 End If
 If Not String.IsNullOrEmpty(Username.Text) Then
  smtp.Credentials = New NetworkCredential(Username.Text, Password.Text)
 End If
 '(4)发送MailMessage(将使用Web.config设置)
 smtp.Send(mm)
 '显示一个客户端弹出窗口,解释该该邮件已经发出
 ClientScript.RegisterStartupScript(Me.GetType(), "HiMom!", String.Format("alert('An test email has successfully been sent to {0}');", ToAddress.Replace("'", "\'")), True)
 Catch smtpEx As SmtpException
  '当发送电子邮件消息时发生了一个问题
  ClientScript.RegisterStartupScript(Me.GetType(), "OhCrap", String.Format("alert('There was a problem in sending the email: {0}');", smtpEx.Message.Replace("'", "\'")), True)
 Catch generalEx As Exception
  '发生另外的一些问题
  ClientScript.RegisterStartupScript(Me.GetType(), "OhCrap", String.Format("alert('There was a general problem: {0}');", generalEx.Message.Replace("'", "\'")), True)
End Try

  这段代码捕获SMTP特定的错误消息和普通的异常(例如把无效电子邮件地址赋值给MailMessage对象的To或From属性)。在任何一种情况下,显示一个客户端警告框以通知该用户有关该错误的细节信息。


  五、结论

  在本文中,我们了解了如何发送HTML格式的电子邮件,使用附件发送电子邮件,以及优雅地处理在发送一个电子邮件消息中发生的异常。发送一个HTML格式的电子邮件就象在Body属性中指定HTML内容并且把IsBodyHtml属性为设置True一样地简单。真正的挑战在于,确保HTML内容能够在流行的电子邮件客户端按预期效果生成。为了把一个附件添加到一个电子邮件,只需要简单地添加一个Attachment对象到MailMessage的附件集合中。附件相应的数据可以来自于web服务器上的一个文件或来自于一个流。最后,为了处理SMTP级的异常,你可以添加使用SmtpClient类捕获SmtpException抛出的异常处理代码。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章