四、通过回馈Web页面发送管理员电子邮件
为了说明使用MailMessage和SmtpClient类来实现发送一个电子邮件,我已经创建了一个简单的回馈页面示例。在这个页面中,用户被提示输入其电子邮件地址,他们的回馈主题和相应的回馈内容。
| <table border="0"> <tr> <td> <b>Your Email:</b> </td> <td> <asp:TextBox runat="server" ID="UsersEmail" Columns="30"></asp:TextBox> </td> </tr> <tr> <td> <b>Subject:</b> </td> <td> <asp:TextBox runat="server" ID="Subject" Columns="30"> </asp:TextBox> </td> </tr> <tr> <td colspan="2"> <b>Body:</b> <br /> <asp:TextBox runat="server" ID="Body" TextMode="MultiLine" Columns="55" Rows="10"> </asp:TextBox> </td> </tr> <tr> <td colspan="2" align="center"> <asp:Button runat="server" ID="SendEmail" Text="Send Feedback" /> </td> </tr> </table> |
一旦用户提供了回馈消息并且点击了"Send Feedback"按钮,即发生一个回寄并且该按钮的Click事件激发。在该事件处理器内,一个MailMessage对象被创建,并且它的To,From,Subject和Body属性都根据用户提供的消息加以设置。在创建MailMessage对象并且填充它的属性后,该电子邮件被通过SmtpClient类的Send方法发送出去。
| Protected Sub SendEmail_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SendEmail.Click '!!!把这个值更新为你的电子邮件地址 Const ToAddress As String = "you@youremail.com" '(1)创建MailMessage实例 Dim mm As New MailMessage(UsersEmail.Text, ToAddress) '(2)属性MailMessage赋值 mm.Subject = Subject.Text mm.Body = Body.Text mm.IsBodyHtml = False '(3)创建SmtpClient对象 Dim smtp As New SmtpClient '(4)发送MailMessage(将使用Web.config设置) smtp.Send(mm) End Sub |
在这里的代码中,我们不需要设置SmtpClient类的任何属性,因为它们已经在Web.config文件中指定了(请参考本文下载源码)。
五、结论
通过进一步结合来自于ASP.NET 1.x的其它改进功能,ASP.NET 2.0中的电子邮件发送能力被进一步更新并且移动到一个新的命名空间-System.Net.Mail。在ASP.NET 2.0中,中继服务器设置能够容易地脱离ASP.NET代码,而移动到Web.config文件中,正如我们在这个示例所看到的。而且,还有对中继服务器认证更好的支持。在下篇文章中,我们将探讨更高级电子邮件使用情况,例如构造HTML格式的电子邮件,发送附件,把对象嵌入到电子邮件内,处理与SMTP/中继服务器相关的异常,等等。
更多内容请看PCdog.com--ASP.NET应用篇 垃圾邮件专题


