设为首页收藏本站language 语言切换
查看: 2299|回复: 0
收起左侧

ASP.NET中发送Email完整实例

[复制链接]
发表于 2010-2-25 10:21:04 | 显示全部楼层 |阅读模式
<p >本文举例说明在ASP.NET中发送Email的众多可能性,内容覆盖了诸如Email格式、优先权、附件及Email编码等方面。<p >ASP.NET被赋予了一个发送Email的新对象,名为SmtpMail。使用SmtpMail对象从ASP.NET页面中发送Email时,可以遵循以下简单步骤:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"><ul><li>包含与邮件有关类所需要的名称空间;</li><li>例示一个信息对象,设置属性;</li><li>使用SmtpMail对象实例的send方法发送邮件。</li></ul></td></tr></table></ccid_nobr><p >现在我们就来一步一步地研究从一个ASP.NET页面发送Email的过程。我们使用了VB来说明这个例子,最后将包含VB和C#的完整代码。<p ><ccid_nobr><table width="100%" bgcolor="#f7f3f7" ><tr><td><font color="#000084">第一步:包含名称空间</font></td></tr></table></ccid_nobr><p >在ASP.NET 页面中引入System.Web.Util 名称空间,这个名称空间中包括了发送一个email所必须的所有对象。这些对象是:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"><b>SmtpMail</b>:代表邮件系统,用于发送email。<br/><b>MailMessage</b>:代表一个信息,其属性包括发件人地址、收件人地址等。<br/><b>MailFormat</b>:代表信息的格式:HTML、文本等。<br/><b>MailAttachment</b>:代表一个email附件。<br/><b>MailEncoding enum</b>:代表Base64 或Uuencode的任何编码。取值范围:Base64、UUencode<br/><b>MailPriority enum</b>:用来为信息设置优先权。值为:高、低、一般。<br/><b>&lt;% @Import Namespace = &quot;System.Web.Util&quot; %&gt;</b></td></tr></table></ccid_nobr><p ><ccid_nobr><table width="100%" bgcolor="#f7f3f7" ><tr><td><font color="#000084">第二步:例示 MailMessage 对象</font></td></tr></table></ccid_nobr><p >使用以下语句来例示MailMessage对象:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"> Dim mailObj AS new MailMessage</td></tr></table></ccid_nobr><p >用MailMessage对象的属性来准备邮件。MailMessage对象有下列属性:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"><b>From</b>:发件人的Email地址<br/><b>To</b>:收件人的Email地址<br/><b>Subject</b>:email的主题<br/><b>Body</b>:email的主体<br/><b>CC</b>:email抄送的收件人列表<br/><b>BCC</b>:email暗送的收件人列表<br/><b>riority</b>:信息的优先权:高、低或一般<br/><b>BodyEncoding</b>:信息体的编码,如果有的话,就是Base64或UUencode<br/><b>BodyFormat</b>:信息的格式:Html 或text<br/><b>Attachments</b>:附加到email 的MailAttachment对象列表,主要就是对这个对象集合的一个引用</td></tr></table></ccid_nobr><p >下面这段代码示范了使用MailMessage 对象属性的方法,它们代表了将在本例中创建的一个信息,这个信息要用SmtpMail对象来发送。在例子中,mailObj引用了信息对象的例示:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"> mailObj.From = &quot;abc@mydomain.com&quot;<br/>mailObj.To = Request.Form (&quot;to&quot;)<br/>mailObj.Subject = &quot;subject of the mail&quot;<br/>mailObj.Body = &quot;Message of the mail&quot;</td></tr></table></ccid_nobr><p ><ccid_nobr><table width="100%" bgcolor="#f7f3f7" ><tr><td><font color="#000084">第三步:发送Email</font></td></tr></table></ccid_nobr><p >这时,我们就可以使用SmtpMail 对象的Send方法来发送邮件了:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code"> SmtpMail.Send(mailObj)</td></tr></table></ccid_nobr><p ><ccid_nobr><table width="100%" bgcolor="#f7f3f7" ><tr><td><font color="#000084">完整实例</font></td></tr></table></ccid_nobr><p >最后,我们把以上解释的属性结合在一个完整的例子中。为了说明用ASP.NET 发送一个email 的全部可能性,我们还包含了一些“小技巧”。下面是使用VB.NET的完整例子:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">&lt;%@page language=&quot;VB&quot; %&gt;<br/>&lt;%@Import Namespace=&quot;System.Web.Util&quot; %&gt;<br/>&lt;HTML&gt;&lt;BODY&gt;<br/>&lt;SCRIPT LANGUAGE=&quot;VB&quot; RUNAT=&quot;server&quot;&gt;<br/>' This method is called on the server when the submit<br/>' button is clicked on the client and when the page<br/>' posts back to itself<br/>Sub SendMail (Obj As Object, E As EventArgs)<br/>' Instantiate a MailMessage object. This serves as a message object<br/>' on which we can set properties.<br/>Dim mailObj AS new MailMessage<br/>' Set the from and to address on the email<br/>mailObj.From = Request.Form(&quot;From&quot;)<br/>mailObj.To = Request.Form(&quot;To&quot;)<br/>mailObj.Subject = &quot;Subject Of the Mail&quot;<br/>mailObj.Body = &quot;Body of the Mail&quot;<br/>' Optional: HTML format for the email<br/>mailObj.BodyFormat = MailFormat.Html<br/>' Optional: Encoding for the message<br/>mailObj.BodyEncoding = MailFormat.Base64<br/>' Optional: Set the priority of the message to high<br/>mailObj.Priority = MailPriority.High<br/>' Optional: Attach a file to the email.<br/>' Note here that we have created a MailAttachment object to<br/>' attach a file to the email<br/>mailObj.Attachments.Add(new MailAttachment(&quot;c:\test.doc&quot;))<br/>' Send the email using the SmtpMail object<br/>SmtpMail.Send(mailObj)<br/>End Sub<br/>&lt;/SCRIPT&gt;<br/>&lt;asp:label ID=&quot;Headingmsg&quot; Text=&quot;Enter Your Email Address:&quot; RUNAT=&quot;server&quot;/&gt;<br/>&lt;FORM METHOD=&quot;post&quot; RUNAT=&quot;server&quot;&gt;<br/>Email Recipient: &lt;INPUT TYPE=&quot;text&quot; NAME=&quot;to&quot;&gt; &lt;br&gt;<br/>Email Sender: &lt;INPUT TYPE=&quot;text&quot; NAME=&quot;from&quot;&gt;<br/>&lt;INPUT TYPE=&quot;submit&quot; NAME=&quot;Submit&quot; VALUE=&quot;Send Mail&quot; RUNAT=&quot;server&quot; OnServerClick=&quot;SendMail&quot;&gt;<br/>&lt;/FORM&gt;<br/>&lt;/BODY&gt;</td></tr></table></ccid_nobr><p >在以上例子中,From(发件人)和 To(收件人)的Email地址是从相应的文本框中收集的,点击“Send Mail”(发送邮件)按钮时,邮件就被发送出去。当“Send Mail”(发送邮件)按钮被点击时,表单回递到它自己,在服务器上“SendMail”(发送邮件)程序被触发,邮件被发送。下面是使用C#的例子:<p ><ccid_nobr><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">&lt;%@page language=&quot;C#&quot; %&gt;<br/>&lt;%@Import Namespace=&quot;System.Web.Util&quot; %&gt;<br/>&lt;HTML&gt;&lt;BODY&gt;<br/>&lt;SCRIPT LANGUAGE=&quot;C#&quot; RUNAT=&quot;server&quot;&gt;<br/>// This method is called on the server when the submit<br/>// button is clicked on the client and when the page<br/>// posts back to itself<br/>public void SendMail (Object Obj, EventArgs E)<br/>{<br/>// Instantiate a MailMessage object. This serves as a message object<br/>// on which we can set properties.<br/>MailMessage mailObj = new MailMessage();<br/>// Set the from and to address on the email<br/>mailObj.From = Request.Form(&quot;From&quot;);<br/>mailObj.To = Request.Form(&quot;To&quot;);<br/>mailObj.Subject = &quot;Subject Of the Mail&quot;;<br/>mailObj.Body = &quot;Body of the Mail&quot;;<br/>// Optional: HTML format for the email<br/>mailObj.BodyFormat = MailFormat.Html;<br/>// Optional: Encoding for the message<br/>mailObj.BodyEncoding = MailFormat.Base64;<br/>// Optional: Set the priority of the message to high<br/>mailObj.Priority = MailPriority.High;<br/>// Optional: Attach a file to the email.<br/>// Note here that we have created a MailAttachment object to<br/>// attach a file to the email<br/>mailObj.Attachments.Add(new MailAttachment(&quot;c:\\test.doc&quot;));<br/>// Send the email using the SmtpMail object<br/>SmtpMail.Send(mailObj);<br/>}<br/>&lt;/SCRIPT&gt;<br/>&lt;asp:label ID=&quot;Headingmsg&quot; Text=&quot;Enter Your Email Address:&quot; RUNAT=&quot;server&quot;/&gt;<br/>&lt;FORM METHOD=&quot;post&quot; RUNAT=&quot;server&quot;&gt;<br/>Email Recipient: &lt;INPUT TYPE=&quot;text&quot; NAME=&quot;to&quot;&gt; &lt;br&gt;<br/>Email Sender: &lt;INPUT TYPE=&quot;text&quot; NAME=&quot;from&quot;&gt;<br/>&lt;INPUT TYPE=&quot;submit&quot; NAME=&quot;Submit&quot; VALUE=&quot;Send Mail&quot; RUNAT=&quot;server&quot; OnServerClick=&quot;SendMail&quot;&gt;<br/>&lt;/FORM&gt;<br/>&lt;/BODY&gt;</td></tr></table></ccid_nobr><p >(责任编辑 <ccid_nobr>尤北</ccid_nobr>)                                 <p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 15:43 , Processed in 0.055120 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表