|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)asp.net<P> 1、简介
现在,电子邮件已成为一种无所不在、异步关照和散布式的动静体系。存在很多web开辟场合;个中,服务器端代码都必要天生一个电子邮件而且把它发送给指定的吸收者。该电子邮件能够被发送给网点中的一些用户,关照他们有关于他们的新建用户帐户,提示他们健忘的口令,或以邮件情势提交给他们一个清单。固然,这也能够是针对web开辟者或站点办理员,供应给他们有关一个方才公然的未处置的非常或用户回馈的动静。
幸亏,ASP.NET使得发送电子邮件十分轻松。.NET框架版本1.x在System.Web.Mail类中包含了很多类,它们同意以编程体例经由过程短短的几行代码来发送一个电子邮件。只管这个定名空间和这些类仍旧存在于.NET框架2.0版本中,可是它们已过期,你能够在System.Net.Mail定名空间中找到新的与邮件撑持相干的类。
在本文中,让我们来一同切磋System.Net.Mail定名空间中的相干类,而且剖析怎样从一个ASP.NET2.0页面的code-behind类中发送一个电子邮件。我们还要在Web.config中指定中继服务器动静和怎样把这个动静使用于一些内置ASP.NET服务器控件中以便完成发送电子邮件(比方当一个用户创立一个帐户或必要一个口令提醒器/重置器时)。
2、切磋System.Net.Mail定名空间中的类
在System.Net.Mail定名空间中共有16个分歧的类,它们都与把电子邮件发送到一个指定的复杂的邮件传输协定(SMTP)服务器以便进一步提交有关。在这个定名空间中有两个中心类是:
・MailMessage:形貌一个电子邮件动静;它具有From,To,Subject,Body等属性;
・SmtpClient:把一个指定的MailMessage实例发送到一个指定的SMTP服务器。
典范地,当你从一个ASP.NET2.0页面中发送电子邮件时,你要:
1.创立一个MailMessage工具;
2.赋给它属性;
3.创立一个SmtpClient类实例;
4.指定关于利用该SMTP服务器的细节(假如它们没有在Web.config中指定);
5.经过SmtpClient工具的Send办法发送该MailMessage。
个中,下面的第1步和第2步能够被略过,由于SmtpClient类的Send办法可以吸收一个MailMessage工具或吸收四个字符串(分离形貌电子邮件动静内容的from,to,subject和body部分)。
System.Net.Mail定名空间中的别的类还供应了更初级的电子邮件功效。比方,这些类可以用于在一个电子邮件动静中增加附件,把工具嵌进到一个电子邮件,指定SMTP服务器认证动静等;另有一些Exception的派生类用于处置SMTP特定的非常。我们会在今后的文章中来会商这些别的类的更初级的利用情况。
3、供应有关SMTP服务器的具体信息
当从Outlook或GMail中把一个电子邮件发送给一个伴侣时,该电子邮件程序利用一其中继服务器创建一个毗连而且发送该电子邮件动静的内容(连同别的一些动静,比方电子邮件创立日期,电子邮件格局(文本或HTML,等等),吸收者,等等)。中继服务器吸收该动静,然后毗连到吸收者的SMTP服务器而且发送该动静。一旦该动静被提交,吸收者就可以够(稍后)利用一种分歧的协定(比方IMAP或POP3)来提取该动静。
因而,为了从一个ASP.NET页面中发送一个电子邮件,我们必要供应给SmtpClient类关于该中继服务器的动静。借助于中继服务器的主机名,你可以指定以下信息:响应的端标语(典范地利用端口25),当把你的电子邮件动静内容毗连到中继服务器时是不是利用SSL,和认证证书(假如需要的话)等。作为选择,假如你能够在你的web服务器上安装一个当地SMTP服务,它能够周期性地监督一个出格的"drop-off"目次,发送呈现在谁人目次中的任何动静。你可以设置是不是该SmtpClient类把它的电子邮件动静传送给一个独自的中继服务器或是不是能经由过程DeliveryMethod属性把该邮件投进到一个指定的检出目次下。
SmtpClient类利用的中继服务器信息可以以编程体例经由过程SmtpClient类的属性指定,也能够被会合在Web.config文件中。为了利用Web.config办法,你能够在<configuration>元素内增加一个<system.net>元素。然后,增加一个包括一个<smtp>元素(其设置是在它的<network>子元素中指定的)的<mailSettings>元素。请参考以下的代码:
<configuration>
<!-把电子邮件设置增加到<system.net>元素-->
<system.net>
<mailSettings>
<smtp>
<networkhost="relayServerHostname"port="portNumber"userName="username"password="password"/>
</smtp>
</mailSettings>
</system.net>
<system.web>...</system.web>
</configuration>
个中的host属性包括relayServerHostname。假如你正利用一个内部中继服务器,那末该relayServerHostname多是相似于smtp.yourisp.com的内容。假如该中继服务器的端口数字是除典范的端口25之外的别的数,那末你能够经由过程port属性来指定它。年夜多半内部中继服务器都请求完成某品种型的认证(为了避免匿名渣滓邮件经由过程中继发送他们的渣滓信息)。在必要用户名/口令认证时必要供应userName和password属性。
只要SmtpClient属性的一个子集可以经由过程Web.config中的设置指定。为了定制别的的SmtpClient属性(比方EnableSsl,Timeout,等等),你能够在发送电子邮件时以编程体例设置它们。
<P> 4、经由过程回馈Web页面发送办理员电子邮件
为了申明利用MailMessage和SmtpClient类来完成发送一个电子邮件,我已创立了一个复杂的回馈页面示例。在这个页面中,用户被提醒输出其电子邮件地点,他们的回馈主题和响应的回馈内容。
<tableborder="0">
<tr>
<td>
<b>YourEmail:</b>
</td>
<td>
<asp:TextBoxrunat="server"ID="UsersEmail"Columns="30"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<b>Subject:</b>
</td>
<td>
<asp:TextBoxrunat="server"ID="Subject"Columns="30">
</asp:TextBox>
</td>
</tr>
<tr>
<tdcolspan="2">
<b>Body:</b><br/>
<asp:TextBoxrunat="server"ID="Body"TextMode="MultiLine"Columns="55"Rows="10">
</asp:TextBox>
</td>
</tr>
<tr>
<tdcolspan="2"align="center">
<asp:Buttonrunat="server"ID="SendEmail"Text="SendFeedback"/>
</td>
</tr>
</table>
一旦用户供应了回馈动静而且点击了"SendFeedback"按钮,即产生一个回寄而且该按钮的Click事务引发。在该事务处置器内,一个MailMessage工具被创立,而且它的To,From,Subject和Body属性都依据用户供应的动静加以设置。在创立MailMessage工具而且添补它的属性后,该电子邮件被经由过程SmtpClient类的Send办法发送进来。
ProtectedSubSendEmail_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesSendEmail.Click
!!!把这个值更新为你的电子邮件地点
ConstToAddressAsString="you@youremail.com"
(1)创立MailMessage实例
DimmmAsNewMailMessage(UsersEmail.Text,ToAddress)
(2)属性MailMessage赋值
mm.Subject=Subject.Text
mm.Body=Body.Text
mm.IsBodyHtml=False
(3)创立SmtpClient工具
DimsmtpAsNewSmtpClient
(4)发送MailMessage(将利用Web.config设置)
smtp.Send(mm)
EndSub
在这里的代码中,我们不必要设置SmtpClient类的任何属性,由于它们已在Web.config文件中指定了(请参考本文下载源码)。
5、结论
经由过程进一步分离来自于ASP.NET1.x的别的改善功效,ASP.NET2.0中的电子邮件发送才能被进一步更新而且挪动到一个新的定名空间-System.Net.Mail。在ASP.NET2.0中,中继服务器设置可以简单地离开ASP.NET代码,而挪动到Web.config文件中,正如我们在这个示例所看到的。并且,另有对中继服务器认证更好的撑持。鄙人篇文章中,我们将切磋更初级电子邮件利用情形,比方机关HTML格局的电子邮件,发送附件,把工具嵌进到电子邮件内,处置与SMTP/中继服务器相干的非常,等等。可怜的程序员,还是逃不出移植的命运! |
|