ASP用JMail、CDO发送邮件
ASP用JMail、CDO发送邮件
发布时间:2017-01-07 来源:查字典编辑
摘要:前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单的例子:首先...

前一段时间有发过一个简单的JMAIL邮件发邮件的代码,今天就把这个代码做一个具体的注解,并增加了另外两个格式的代码,并举几个简单的例子:

首先是jmail.smtpmail的核心代码:

程序代码

<%

Setjmail=Server.CreateObject("JMAIL.SMTPMail")'创建一个JMAIL对象

jmail.silent=true'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE

jmail.logging=true'启用使用日志

jmail.Charset="GB2312"'邮件文字的代码为简体中文

jmail.ContentType="text/html"'邮件的格式为HTML的

jmail.ServerAddress="ServerAddress"'发送邮件的服务器

jmail.AddRecipientEmail'邮件的收件人

jmail.SenderName="SenderName"'邮件发送者的姓名

jmail.Sender="EmailAddress"'邮件发送者的邮件地址

jmail.Priority=1'邮件的紧急程序,1为最快,5为最慢,3为默认值

jmail.Subject="MailSubject"'邮件的标题

jmail.Body="MailBody"'邮件的内容

jmail.AddRecipientBCCEmail'密件收件人的地址

jmail.AddRecipientCCEmail'邮件抄送者的地址

jmail.Execute()'执行邮件发送

jmail.Close'关闭邮件对象

%>

现在还有很多程序是使用这种方式来发信,这种方式有一个很大的缺陷,那就是发信是使用服务器本地smtp服务发出的,并没有通过任何smtp身份验证,

如果服务器设置了需要使用身份验证,则发信会失败。现在因为反垃圾邮件的需要,越来越多的服务器开始注重这方面的设置问题,如果你使用此种方法发信突然出现不正常,

则可能是服务器限制了匿名发信,上面的代码则就不会正常运作了。

这种方法我们不建议使用,但是现在还有很多asp程序使用此种方法,可能还是可以正常运作的,但是很难保证以后会一直正常,并且某些邮件服务器会拒收这种方法发出的信件,所以如果有可能的话,尽量不要使用这种方式。

w3Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:

程序代码

<%

Setjmail=Server.CreateObject("JMAIL.Message")'建立发送邮件的对象

jmail.silent=true'屏蔽例外错误,返回FALSE跟TRUE两值j

mail.logging=true'启用邮件日志

jmail.Charset="GB2312"'邮件的文字编码为国标

jmail.ContentType="text/html"'邮件的格式为HTML格式

jmail.AddRecipientEmail'邮件收件人的地址

jmail.From="EmailFromforSender"'发件人的E-MAIL地址

jmail.MailServerUserName="UserNameofEmail"'登录邮件服务器所需的用户名

jmail.MailServerPassword="PasswordofEmail"'登录邮件服务器所需的密码

jmail.Subject="MailSubject"'邮件的标题

jmail.Body="MailBody"'邮件的内容

jmail.Prority=1'邮件的紧急程序,1为最快,5为最慢,3为默认值

jmail.Send("ServerAddress")'执行邮件发送(通过邮件服务器地址)

jmail.Close()'关闭对象

%>

使用这段代码发信,是当前最为稳定,也最为适用的发信方法,我们推荐使用Jmail发信的客户,使用此种方法来发信。

再讲一下微软自带的CDONTS组件的发信的方法:

程序代码

<%

Setcdomail=Server.CreateObject("CDONTS.NewMail")'建立邮件对象

cdomail.Subject="MailSubject"'邮件标题

cdomail.From="Sender'sMail"'发件人的地址

cdomail.To="Emailwillfrom"'收件人的地址

cdomail.Body="MailBody"'邮件的内容

cdomail.Send'执行发送

%>

我们写程序,一般情况下都是说要代码模块化,这样方便维护,同时也方便移植。因此,我在这里将这个发邮件的写成一个子程,在调用的时候可以直接调用(当然,如果你高兴写成函数的话也是可以的,这个主要是看个人兴趣):

推荐

复制代码 代码如下:<%

'参数说明

'Subject:邮件标题

'MailAddress:发件服务器的地址,如smtp.163.com

'Email:收件人邮件地址

'Sender:发件人姓名

'Content:邮件内容

'Fromer:发件人的邮件地址

SubSendAction(subject,mailaddress,email,sender,content,fromer)

Setjmail=Server.CreateObject("JMAIL.SMTPMail")'创建一个JMAIL对象

jmail.silent=true'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE

jmail.logging=true'启用使用日志

jmail.Charset="GB2312"'邮件文字的代码为简体中文

jmail.ContentType="text/html"'邮件的格式为HTML的

jmail.ServerAddress=mailaddress'发送邮件的服务器

jmail.AddRecipientEmail'邮件的收件人

jmail.SenderName=sender'邮件发送者的姓名

jmail.Sender=fromer'邮件发送者的邮件地址

jmail.Priority=1'邮件的紧急程序,1为最快,5为最慢,3为默认值

jmail.Subject=subject'邮件的标题

jmail.Body=content'邮件的内容

'由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复

'jmail.AddRecipientBCCEmail'密件收件人的地址

'jmail.AddRecipientCCEmail'邮件抄送者的地址

jmail.Execute()'执行邮件发送

jmail.Close'关闭邮件对象

EndSub

'调用此Sub的例子

DimstrSubject,strEmail,strMailAdress,strSender,strContent,strFromer

strSubject="这是一封用JMAIL发送的测试邮件"

strContent="JMail组件发送测试成功!"

strEmail="runbing@eyou.com"

strFromer="runbing@eyou.com"

strMailAddress="mail.ubbcn.com"

CallSendAction(strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)

%>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类