在.NET框架应用程序中发送电子邮件

** 在 ** ** .NET ** ** 框架应用程序中发送电子邮件 ** **

**

作者: tigerwen01 日期: 2005-9-13

大家在日常开发中,经常会遇到开发一个向客户自动发送 Email 的应用模块,例如,当客户操作某一特定的操作或上网注册、购物时,服务器端在客户操作完成时向客户自动发送一封确认邮件等。 .NET Framework 多种方法,可以使用 socket (套接字)来建立和邮件服务器的连接,然后使用 SMTP (简单邮件传输协议)服务传送邮件,不过这样做相当复杂。我们还是使用 .NET 框架的 System.Web.Mail 命名空间提供的类来完成发送 Email 吧,因为这样做很简单。

System.Web.Mail 命名空间为 SMTP (简单邮件传输协议)提供了一个简单的托管接口,包含很多类,其中有 MailMessage\MailAttachment\SmtpMail 等重要类,其中 MailAttachment 类提供用于构造电子邮件附件的属性和方法, MailMessage 类提供用于构造电子邮件的属性和方法, SmtpMail 类提供用于使用宿主系统的协作数据对象 (CDOSYS) 消息组件来发送消息的属性和方法。

为了保证程序能够正确运行,设置 IIS 中默认 SMTP 虚拟服务器的“中继”方法如下:

进入“ Internet 信息服务“界面,右键点击“默认 SMTP 虚拟服务器属性”在弹出菜单中选择“属性”,在“访问”选项卡中单击“中继”按钮,然后在“中继限制”窗口中在“ IP 地址(掩码) / 域名”处加添“ 127.0.0.1 ”。

下面给出一个 SendEmail.aspx 文件,该文件使用 Visual Web Developer 2005 速成版的测试版 2 下开发,在 Windows2000Server+sp4 下运行通过。以供参考:

1@ Page Language="C#" 
1@ Import Namespace="System.Web.Mail" 
 1<script runat="server">
 2
 3void OnSend(Object Sender,EventArgs e) { 
 4
 5MailMessage messge = new MailMessage(); 
 6
 7messge.From = Sed.Text; 
 8
 9messge.To = Receiver.Text; 
10
11messge.Subject = Subj.Text; 
12
13messge.Body = Body.Text; 
14
15SmtpMail.SmtpServer = "  localhost  "; 
16
17SmtpMail.Send(messge); 
18
19lab.Text ="  邮件发送成功!  "; 
20
21} 
22
23</script>
 1<html xmlns="http://www.w3.org/1999/xhtml">
 2<head runat="server">
 3<title> 发送电子邮件用户界面  </title>
 4</head>
 5<body>
 6<h1> 发送电子邮件用户界面  </h1>
 7<form id="form1" runat="server">
 8<div>
 9<hr/>
10<table cellspacing="8">
11<tr>
12<td align="right" valign="bottom"> 发送者  :</td>
13<td><asp:textbox id="Sed" runat="server/"></asp:textbox></td>
14</tr>
15<tr>
16<td align="right" valign="bottom"> 接收者  :</td>
17<td><asp:textbox id="Receiver" runat="server"></asp:textbox></td>
18</tr>
19<tr>
20<td align="right" valign="bottom"> 主题  :</td>
21<td><asp:textbox id="Subj" runat="server"></asp:textbox></td>
22</tr>
23<tr>
24<td align="right" valign="bottom"> 内容  :</td>
25<td><asp:textbox columns="40" id="Body" rows="5" runat="server" textmode="MultiLine"></asp:textbox></td>
26</tr>
27</table>
28<hr>
29<asp:button onclick="OnSend" runat="server" text="  发送  "></asp:button>
30</hr></div>
31</form>
32<asp:label id="lab" runat="server/">
33</asp:label></body>
34</html>

本文只介绍如何在 .NET 框架的应用程序里发送电子邮件,并没有涉及到 System.Web.Mail 命名空间的类的详细介绍,关于 System.Web.Mail 可以参考相关资料。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus