技术开发 频道

深入解析ASP.NET中实现发送电子邮件

  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>

 

  一旦用户提供了回馈消息并且点击了"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);
        }

  在这里的代码中,我们不需要设置SmtpClient类的任何属性,因为它们已经在Web.config文件中指定了。

  4.结论

  通过进一步结合来自于ASP.NET 1.x的其它改进功能,ASP.NET2.0中的电子邮件发送能力被进一步更新并且移动到一个新的命名空间-System.Net.Mail。在 ASP.NET2.0中,中继服务器设置能够容易地脱离ASP.NET代码,而移动到Web.config文件中,正如我们在这个示例所看到的。而且,还有对中继服务器认证更好的支持。在下篇文章中,我们将探讨更高级电子邮件使用情况,例如构造HTML格式的电子邮件,发送附件,把对象嵌入到电子邮件内,处理与SMTP/中继服务器相关的异常,等等。

0
相关文章