ASP+Jmail(4.4)开发邮件系统的一点经验

yoken 阅读:1674 2007-10-15 08:12:00 评论:0
我知道,现在很多程序员,尤其是ASP程序员在使用Jmail组件开发基于Web方式的邮件系统,许多人可以说是经验老到,因此本文是供那些初次使用Jmail组件开发的朋友参考的,Jmail的功能需要更多经验才能充分释放。废话少说,切入正题。
我用的开发环境是:windows server 2000(sp4.0),IIS5.0,DreamWeaver MX
使用Jmail发送邮件:Jmail组件是使用Message对象包装邮件文件的,因此Message对象是Jmail组件的核心对象,下面我们就介绍这个对象的使用:
第一步:生成Message对象:
Set msg = Server.CreateObject("JMAIL.message")
你要想使用Jmail发送邮件,首先需要一个Message对象,接下来要设置Message对象的各个属性。
第二步:设置Message对象的属性:
msg.Logging = true 打开Message对象的日至,这样你的程序出错的时候你可以得到很充分错误信息,有利于你调试程序。
msg.silent = true 这项设置不让Message对象的Send()方法抛出异常,如果你是第一次调试系统,请不要设置该项,那样你就捕捉不到错误影响到你的调试,当你确定系统已经稳定运行,可以设置个属性,那样你的系统就不会对用户报错,当然这种错误一般都是偶然性的。
msg.charSet="GB2312" 这一项特别重要,你一定要在发送邮件的开始设置你的邮件编码集,否则发送出去邮件可能是一堆乱码,我在初次开发时就吃尽了苦头。情况是这样:当时我不知道要在发送前设置这一项,当我邮件发送出去,用其它的邮件系统可以正常打开,但是用自己开发的系统打开却是一堆乱码,无论你在收邮件时做什么样的设置,对于中文都是乱码。如果你是在开发中文邮件系统,一定记住发送邮件前设置这一项。"GB2312"简体中文的代码,其他语言代码请朋友们自己查找。
msg.MailServerUserName = serverUserName 登录smtp服务器用户名。
msg.MailServerPassword = serverPwd 登录smtp服务器用户密码。
msg.from=fromEmail 设置发件人电子邮件地址,这里暗藏一个玄机,你的这个发件人地址必须与你在Send()方法中使用的smtp服务器的域名相同,否则你就不能发送邮件,这一点特别重要,这可能是各供应商为了安全设置的机关。
msg.fromName=fromName 用来显示发件人名称,这一项无关紧要。
msg.AddRecipient eadd,eName 为Message对象添加收件人地址和姓名,其中姓名是可以省略的,你可以循环添加很多的,这样你就实现了邮件群发。同样道理你可以设置抄送(msg.AddRecipientCC eadd,eName)和暗送属性(msg.AddRecipientBCC eadd,eName)。
msg.addAttachment(att_name) 没错,这就是为你的邮件添加附件,记住att_name用的可是物理地址。当然可以循环添加附件,你的邮件可以附带很多附件文件,怎么样,够刺激吧。
Msg.body和Msg.HTMLBody 这两个方法有一定的区别,但是我想你可以忽略它,只使用Msg.HTMLBody 对把你的邮件主题内容给他无论是文本的还是html格式的,他都能为你发送,你一点都不用担心。
msg.appendHTML() 你可以追加相关的内容进去,一点都不错,用它可以很轻松的实现签名档。
好了,到目前为止你已经创建了一个很专业电子邮件对象,下一步就是发送他。

第三步:发送电子邮件:
如果你在Message对象的属性设置里设置了msg.MailServerUserName(服务器登录用户)和msg.MailServerPassword(服务器登录密码)那么,你就可以直接用Msg.Send(smtp服务器)方法来发送邮件了,就这么简单。如果没有设置msg.MailServerUserName(服务器登录用户)和msg.MailServerPassword(服务器登录密码)那么你就必须使用下面的参数调用Send()方法Msg.Send(serverUser:serverPwd@smtp服务器)。
一定要记住发件人邮件地址必须与smtp服务器域名相同。
Msg.nq()方法,如果你采用了这个方法发送电子邮件,那就意味着你将使用本地的smtp虚拟邮件服务器,采用它发送邮件的好处是你不用给他发件人地址,不好的地方是并不是所有的邮件服务器都接受这种邮件,我在采用它发送邮件时,新浪的邮箱怎么也发送不进去,另外发送老是出错。我不知道是什么原因。
使用Jmail收取邮件:能发送能收取,才是一个完整的电子邮件系统,下面我们简单介绍使用Jmail收取POP3邮件。
第一步:生成pop3对象并建立与pop3服务器的连接
set obj_pop=server.CreateObject("JMail.pop3") 生成pop3对象
obj_pop.connect arg_user,arg_pwd,arg_pop 建立与pop3服务器的连接,三个参数都是必须的(用户登录名称、密码、pop3服务器)
第二步:利用Messages对象和Message对象取回邮件信息:
set obj_msgs=obj_pop.Messages 注意:Messages对象必须以这种方法生成,不能使用server.CreateObject(“Jmail。Messages”)去生成。
obj_msgs.count 属性记录着返回的邮件数
obj_msgs.item 是一个数组,每一个数组元素就是一个Message对象用一个循环取得所有的Message对象,再根据你的需求将Message对象的各个属性取出就可以了,你已经把邮件收取到本地。特别需要注意,这个数组的下标是从1开始计数,你的循环变量必须从1开始。据说这是按照pop3国际规范设置的。
set obj_res=obj_msg.recipients 取得Recipients也是一个集合对象,保存着Message对象的所有收件人和抄送邮件地址和名称,但是这个集合就是从0开始计数的。这个集合力的每一个元素都是一个Recipient对象,用循环语句可以取出所有的收件人地址和姓名,Recipients.Count属性记录Recipient对象个数。
set obj_re=obj_res.item(j) 取得Recipient对象,它有以下属性
obj_re.reType 返回收件人模式(收件人To=0,抄送Cc=1,暗送Bcc=2)
obj_re.Email 返回收件人邮件地址
obj_re.Name 返回收件人名称
set obj_atts=obj_msg.Attachments 返回Attachments对象,他也是一个对象集合,从0开始计数。有以下属性
obj_atts.count 记录集合边界
set obj_att=obj_atts.item(j) 取得附件Attachment对象,并利用它的相关属性保存附件,具体的属性朋友们可以在Jmail文档上查找。
第三步:断开与pop3服务器的连接
obj_pop.Disconnect 需要注意的是千万别提前断开连接,否则以上的那些对象都是空的,你就没办法取得相关邮件信息了。


本文只介绍收发邮件相关的常用属性,其他更多的属性还是朋友们在使用的时候自己去查去总结相关的用法。希望本文对你有所帮助。

转载保留链接!网址:http://80920140.com/post/93.html

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源; 2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任; 3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容