帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
在ASP.NET中发送Email完整实例
作者:佚名 发布时间:2005-04-02 来源:不详
 本文举例说明在ASP.NET中发送Email的众多可能性,内容覆盖了诸如Email格式、优先权、附件及Email编码等方面。
ASP.NET被赋予了一个发送Email的新对象,名为SmtpMail。使用SmtpMail对象从ASP.NET页面中发送Email时,可以遵循以下简单步骤:

▲包含与邮件有关类所需要的名称空间;
▲例示一个信息对象,设置属性;
▲使用SmtpMail对象实例的send方法发送邮件。

现在我们就来一步一步地研究从一个ASP.NET页面发送Email的过程。我们使用了VB来说明这个例子,最后将包含VB和C#的完整代码。

第一步:包含名称空间

在ASP.NET 页面中引入System.Web.Util 名称空间,这个名称空间中包括了发送一个email所必须的所有对象。这些对象是:

SmtpMail:代表邮件系统,用于发送email。
MailMessage:代表一个信息,其属性包括发件人地址、收件人地址等。
MailFormat:代表信息的格式:HTML、文本等。
MailAttachment:代表一个email附件。
MailEncoding enum:代表Base64 或Uuencode的任何编码。取值范围:Base64、UUencode
MailPriority enum:用来为信息设置优先权。值为:高、低、一般。
〈% @Import Namespace = "System.Web.Util" %〉

第二步:例示 MailMessage 对象

使用以下语句来例示MailMessage对象:

Dim mailObj AS new MailMessage

用MailMessage对象的属性来准备邮件。MailMessage对象有下列属性:

From:发件人的Email地址
To:收件人的Email地址
Subject:email的主题
Body:email的主体
CC:email抄送的收件人列表
BCC:email暗送的收件人列表
Priority:信息的优先权:高、低或一般
BodyEncoding:信息体的编码,如果有的话,就是Base64或UUencode
BodyFormat:信息的格式:Html 或text
Attachments:附加到email 的MailAttachment对象列表,主要就是对这个对象集合的一个引用

下面这段代码示范了使用MailMessage 对象属性的方法,它们代表了将在本例中创建的一个信息,这个信息要用SmtpMail对象来发送。在例子中,mailObj引用了信息对象的例示:

mailObj.From = "abc@mydomain.com"
mailObj.To = Request.Form ("to")
mailObj.Subject = "subject of the mail"
mailObj.Body = "Message of the mail"

第三步:发送Email

这时,我们就可以使用SmtpMail 对象的Send方法来发送邮件了:

SmtpMail.Send(mailObj)

完整实例

最后,我们把以上解释的属性结合在一个完整的例子中。为了说明用ASP.NET 发送一个email 的全部可能性,我们还包含了一些“小技巧”。下面是使用VB.NET的完整例子:

〈%@page language="VB" %〉
〈%@Import Namespace="System.Web.Util" %〉
〈HTML〉〈BODY〉
〈SCRIPT LANGUAGE="VB" RUNAT="server"〉
' This method is called on the server when the submit
' button is clicked on the client and when the page
' posts back to itself
Sub SendMail (Obj As Object, E As EventArgs)
' Instantiate a MailMessage object. This serves as a message object
' on which we can set properties.
Dim mailObj AS new MailMessage
' Set the from and to address on the email
mailObj.From = Request.Form("From")
mailObj.To = Request.Form("To")
mailObj.Subject = "Subject Of the Mail"
mailObj.Body = "Body of the Mail"
' Optional: HTML format for the email
mailObj.BodyFormat = MailFormat.Html
' Optional: Encoding for the message
mailObj.BodyEncoding = MailFormat.Base64
' Optional: Set the priority of the message to high
mailObj.Priority = MailPriority.High
' Optional: Attach a file to the email.
' Note here that we have created a MailAttachment object to
' attach a file to the email
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
' Send the email using the SmtpMail object
SmtpMail.Send(mailObj)
End Sub
〈/SCRIPT〉
〈asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/〉
〈FORM METHOD="post" RUNAT="server"〉
Email Recipient: 〈INPUT TYPE="text" NAME="to"〉 〈br〉
Email Sender: 〈INPUT TYPE="text" NAME="from"〉
〈INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail"〉
〈/FORM〉
〈/BODY〉

在以上例子中,From(发件人)和 To(收件人)的Email地址是从相应的文本框中收集的,点击“Send Mail”(发送邮件)按钮时,邮件就被发送出去。当“Send Mail”(发送邮件)按钮被点击时,表单回递到它自己,在服务器上“SendMail”(发送邮件)程序被触发,邮件被发送。下面是使用C#的例子:

〈%@page language="C#" %〉
〈%@Import Namespace="System.Web.Util" %〉
〈HTML〉〈BODY〉
〈SCRIPT LANGUAGE="C#" RUNAT="server"〉
// This method is called on the server when the submit
// button is clicked on the client and when the page
// posts back to itself
public void SendMail (Object Obj, EventArgs E)
{
// Instantiate a MailMessage object. This serves as a message object
// on which we can set properties.
MailMessage mailObj = new MailMessage();
// Set the from and to address on the email
mailObj.From = Request.Form("From");
mailObj.To = Request.Form("To");
mailObj.Subject = "Subject Of the Mail";
mailObj.Body = "Body of the Mail";
// Optional: HTML format for the email
mailObj.BodyFormat = MailFormat.Html;
// Optional: Encoding for the message
mailObj.BodyEncoding = MailFormat.Base64;
// Optional: Set the priority of the message to high
mailObj.Priority = MailPriority.High;
// Optional: Attach a file to the email.
// Note here that we have created a MailAttachment object to
// attach a file to the email
mailObj.Attachments.Add(new MailAttachment("c:test.doc"));
// Send the email using the SmtpMail object
SmtpMail.Send(mailObj);
}
〈/SCRIPT〉
〈asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/〉
〈FORM METHOD="post" RUNAT="server"〉
Email Recipient: 〈INPUT TYPE="text" NAME="to"〉 〈br〉
Email Sender: 〈INPUT TYPE="text" NAME="from"〉
〈INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail"〉
〈/FORM〉
〈/BODY〉


  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·在ASP中使用脚本语言  (2005-04-02)
 ·在ASP中限制同一表单被多次提交  (2005-04-02)
 ·在asp中结合对象和组件  (2005-04-02)
 ·在ASP.NET数据集中浏览多个相关表  (2005-04-02)
 ·在ASP.NET中进行文件处理  (2005-04-02)
 ·如何在ASP中调用DLL  (2005-04-02)
 ·在ASP.NET中使用Microsoft Word文  (2005-04-02)
 ·在ASP中常见的错误80004005信息和  (2005-03-12)
 ·为何我在asp程序内使用msgbox,程  (2005-03-12)
 ·在ASP应用中如何限制同一表单被多  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统