3.通过回馈Web页面发送管理员电子邮件
为了说明使用MailMessage和SmtpClient类来实现发送一个电子邮件,我已经创建了一个简单的回馈页面示例。在这个页面中,用户被提示输入其电子邮件地址,他们的回馈主题和相应的回馈内容。
<table border="0">
<tr>
<td>
<b>To Email: </b>
</td>
<td>
<aspextBox runat="server" ID="UsersEmail" Columns="30"> </aspextBox>
</td>
</tr>
<tr>
<td>
<b>Subject: </b>
</td>
<td>
<aspextBox runat="server" ID="Subject" Columns="30">
</aspextBox>
</td>
</tr>
<tr>
<td colspan="2">
<b>Body: </b>
<br />
<aspextBox 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" />
</td>
</tr>
</table>
<tr>
<td>
<b>To Email: </b>
</td>
<td>
<aspextBox runat="server" ID="UsersEmail" Columns="30"> </aspextBox>
</td>
</tr>
<tr>
<td>
<b>Subject: </b>
</td>
<td>
<aspextBox runat="server" ID="Subject" Columns="30">
</aspextBox>
</td>
</tr>
<tr>
<td colspan="2">
<b>Body: </b>
<br />
<aspextBox 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" />
</td>
</tr>
</table>
一旦用户提供了回馈消息并且点击了"SendFeedback"按钮,即发生一个回寄并且该按钮的Click事件激发。在该事件处理器内,一个 MailMessage对象被创建,并且它的To,From,Subject和Body属性都根据用户提供的消息加以设置。在创建MailMessage 对象并且填充它的属性后,该电子邮件被通过SmtpClient类的Send方法发送出去。
protected void SendEmail_Click(object sender, EventArgs e)
{
String FromAddress = "***@***.com";
//(1)创建MailMessage实例
MailMessage mm = new MailMessage(FromAddress,UsersEmail.Text);
mm.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
mm.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
//(2)属性MailMessage赋值
mm.Subject = Subject.Text ;
mm.Body = Body.Text ;
mm.IsBodyHtml = false;
//(3)创建SmtpClient对象
SmtpClient smtp = new SmtpClient();
//(4)发送MailMessage(将使用Web.config设置)
smtp.Send(mm);
}
{
String FromAddress = "***@***.com";
//(1)创建MailMessage实例
MailMessage mm = new MailMessage(FromAddress,UsersEmail.Text);
mm.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
mm.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
//(2)属性MailMessage赋值
mm.Subject = Subject.Text ;
mm.Body = Body.Text ;
mm.IsBodyHtml = false;
//(3)创建SmtpClient对象
SmtpClient smtp = new SmtpClient();
//(4)发送MailMessage(将使用Web.config设置)
smtp.Send(mm);
}
在这里的代码中,我们不需要设置SmtpClient类的任何属性,因为它们已经在Web.config文件中指定了。
4.结论
通过进一步结合来自于ASP.NET 1.x的其它改进功能,ASP.NET2.0中的电子邮件发送能力被进一步更新并且移动到一个新的命名空间-System.Net.Mail。在 ASP.NET2.0中,中继服务器设置能够容易地脱离ASP.NET代码,而移动到Web.config文件中,正如我们在这个示例所看到的。而且,还有对中继服务器认证更好的支持。在下篇文章中,我们将探讨更高级电子邮件使用情况,例如构造HTML格式的电子邮件,发送附件,把对象嵌入到电子邮件内,处理与SMTP/中继服务器相关的异常,等等。