电脑技术学习

ASP用JMail、CDO发送邮件

dn001

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

<%
Set jmail = Server.CreateObject("JMAIL.SMTPMail")'创建一个JMAIL对象
jmail.silent = true'JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE
jmail.logging = true'启用使用日志
jmail.Charset = "GB2312"; '邮件文字的代码为简体中文
jmail.ContentType = "text/html"; '邮件的格式为HTML的
jmail.ServerAddress = "Server Address"'发送邮件的服务器
jmail.AddRecipient Email;'邮件的收件人
jmail.SenderName = "SenderName";'邮件发送者的姓名
jmail.Sender = "Email Address";'邮件发送者的邮件地址
jmail.Priority = 1'邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Subject = "Mail Subject"; '邮件的标题
jmail.Body = "Mail Body"'邮件的内容
jmail.AddRecipientBCC Email'密件收件人的地址
jmail.AddRecipientCC Email'邮件抄送者的地址
jmail.Execute()'执行邮件发送
jmail.Close;'关闭邮件对象
%>

w3 Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:
<%
Set jmail = Server.CreateObject("JMAIL.Message")'建立发送邮件的对象
jmail.silent = true;'屏蔽例外错误,返回FALSE跟TRUE两值j
mail.logging = true'启用邮件日志
jmail.Charset = "GB2312";;'邮件的文字编码为国标
jmail.ContentType = "text/html";'邮件的格式为HTML格式
jmail.AddRecipient Email;;'邮件收件人的地址
jmail.From = "Email From for Sender"'发件人的E-MAIL地址
jmail.MailServerUserName = "UserName of Email";;'登录邮件服务器所需的用户名
jmail.MailServerPassword = "Password of Email";;'登录邮件服务器所需的密码
jmail.Subject = "Mail Subject";'邮件的标题
jmail.Body = "Mail Body";;;'邮件的内容
jmail.Prority = 1;;;'邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Send("Server Address");;'执行邮件发送(通过邮件服务器地址)
jmail.Close()'关闭对象
%>

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

<%
Set cdomail = Server.CreateObject("CDONTS.NewMail"); '建立邮件对象
cdomail.Subject = "Mail Subject"'邮件标题
cdomail.From = "Sender's Mail"'发件人的地址
cdomail.To = "Email will from"'收件人的地址
cdomail.Body = "Mail Body"'邮件的内容
cdomail.Send;'执行发送
%>

这种方法发送邮件是最简单的,同时也带来一定的问题,就是很少有服务器会开这项服务!


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

<%
'参数说明
'Subject;;: 邮件标题
'MailAddress : 发件服务器的地址,如smtp.163.com
'Email;;;;: 收件人邮件地址
'Sender;;;: 发件人姓名
'Content;;: 邮件内容
'Fromer;;;: 发件人的邮件地址

Sub SendAction(subject, mailaddress, email, sender, content, fromer)
Set jmail = 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.AddRecipient Email;'邮件的收件人
jmail.SenderName = sender'邮件发送者的姓名
jmail.Sender = fromer;'邮件发送者的邮件地址
jmail.Priority = 1'邮件的紧急程序,1 为最快,5 为最慢, 3 为默认值
jmail.Subject = subject; '邮件的标题
jmail.Body = content'邮件的内容
'由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复
'jmail.AddRecipientBCC Email'密件收件人的地址
'jmail.AddRecipientCC Email'邮件抄送者的地址
jmail.Execute()'执行邮件发送
jmail.Close;'关闭邮件对象
End Sub

'调用此Sub的例子
Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
strSubject;;= "这是一封用JMAIL发送的测试邮件"
strContent;;= "JMail组件发送测试成功!"
strEmail;;;;= "runbing@eyou.com"
strFromer;;;= "runbing@eyou.com"
strMailAddress = "mail.ubbcn.com"

Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>

以上是我对发邮件代码的一个粗略的见解,忘大家不吝赐教!