快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记注册:在Asp.Net中使用SmtpMail发送邮件的方法



在ASP中,就可以经由过程调用CDONTS组件发送简单邮件,在ASP.Net中,自然也可以。不合的是,.Net Framework中,将这一组件封装到了System.Web.Mail命名空间中。

一个范例的邮件发送法度榜样如下:

平日环境下,系统调用IIS自带的默认SMTP虚拟办事器就可以实现邮件的发送。然则也常常会碰到这样的差错提示:

The server rejected one or more recipient addresses. The server response was: 550 5.7.1 Unable to relay for brookes@brookes和记注册.com

孕育发生这个差错的缘故原由除了地址差错的可能外,还有一个紧张缘故原由。如上文提到的,IIS并不带有真正的邮件功能,只是借用一个“S和记注册MTP虚拟办事器”实现邮件的转发。在MSDN中,有如下提示:

假如本地 SMTP 办事器(包括在 Windows 2000 和 Windows Server 2003 中)位于壅闭任何直接 SMTP 通信量(经由过程端口 25)的防火墙之后,则必要查找收集上是否有可用的智能主性能用来中转发往 Internet 的 SMTP 消息。

智能主机是一个 SMTP 办事器,它能够中转从内部 SMTP 办事器直接发送到 Internet 的外出电子邮件。智能主机应能同时连接到内部收集和 Internet,以用作电子邮件网关。

打开默认SMTP虚和记注册拟办事器-属性-造访-中继限定,可以看到,这种转发或者中继功能受到了限定。在限定列表中,添加必要应用此办事器的主机的IP地址,就可以办理上文提到的问题。

假如不应用IIS自带的SMTP虚拟办事器而应用其他真正的邮件办事器,如IMail,Exchange等,经常碰到办事器必要寄送者身份验证的问题(ESMTP)。在应用必要验证寄送者身份的办事器时,会呈现差错:

The server rejected one or more recipient addresses. The server response was: 550 not local host ckocoo.com, not a gateway

曩昔在ASP中,碰到这种问题没有什么办理的可能,只能直接应用CDO组件(CDONTS的父级组件):

conf.Fields[CdoConfiguration.cdoSMTPAuthentica和记注册te].Value=CdoProtocolsAuthentication.cdoBasic;

conf.Fields[CdoConfiguration.cdoSendUserName].Value="brookes";

conf.Fields[CdoConfiguration.cdoSendPassword].Value="XXXXXXX";

在.Net Framework 1.1中,显然对这一需求有了斟酌,在MailMessage组件中增添和记注册了Fields聚拢易增添ESMTP邮件办事器中的寄送者身份验证的问题。不过,这一措施仅适用于.Net Framework 1.1,不适用于.Net Framework 1.0版本。带有寄送者身份验证的邮件发送法度榜样如下:

有了这种措施,终于可以不必再借助于Jmail、EasyMail等第三方组件,而只简单应用SmtpMai就可以l完成邮件的发送了!

您可能还会对下面的文章感兴趣: