您现在的位置:龙卷风首页 ›› 网络编程 ›› 阅读文章

使用Jmail在ASP中实现在线发邮件

使用Jmail在ASP中实现在线发邮件,群发邮件。

注:本文2004-12-29在donews首发,这次是重新收录。

X  想在注册帐号的时候给注册者发送一封确认信?

X  想使用网站数据库中的电子邮件库做电子邮件推广?

想实现这样的功能,最理想的莫过于使用现有的smtp服务器配合网站的程序来实现。这个功能我思考了很久了,可惜的是最终没有找到可以不使用组件就能实现上述功能的方法。找到了一篇关于"windows server 2003 免组件在线发邮件"的文件,测试没有成功,原文如下:

"其实ASP可以做很多事,只是大家不知道怎么用而以。微软为asp提供了非常多的现成有用的组件,而这些组件却没有人知道,如用CDO.Message发送邮件。

什么是CDO.Message?在winnt和win2k下发送邮件要用CDONTS.NewMail,CDONTS.NewMail组件是需要注册的,很简单,只要在服务器上运行命令行regsvr32 Cdonts.dll,在弹出的对话框中确定即可,使用CDONTS.NewMail服务还需安装有iis自带的smtp。到了windows2003,系统就没有附带Cdonts.dll文件了,只剩下一个类似的文件cdosys.dll,当然这个文件在win2k也是有的(需要注册组件),不过2003下好的是什么呢?该组件无需手动注册,系统已经自动注册了。现在我们来看看如何使用该组件吧。

<%
Dim cm
Set cm=Server.CreateObject("CDO.Message")
'创建对象
cm.From="from@test.com"
'设置发信人的邮箱
cm.To="to@test.com"
'设置收信人的邮箱
cm.Subject="我发现一个可以在线订阅RSS的网站,以后不用再安装什么软件了。"
'设定邮件的主题
'cm.TextBody="http://www.knowsky.com/rss/"
'上面是使用普通的文本格式发送邮件,只能是文字,不能支持html,所以这里不用

cm.HtmlBody="Online RSS Feeds Reader 是一个在线的RSS新闻阅读系统。"&_
"无需下载安装,只要注册了之后你就可以拥有和软件一样强大功能的RSS在线订阅聚合新闻的系统了。"&_
"不管你在任何地方,只要你能上网,你就能阅读你喜欢的订阅。"&_
"快去注册吧:<a href=http://www.gbmad.net/rss/>http://www.gbmad.net/rss/</a>"

'上面就是你构建的html正文,这样发出的邮件就比只有文字的好看多了。不要说你不会html吧

'cm.AddAttachment Server.MapPath("test.zip")
'如果有需要发送附件的话就用上面的方法把文件附加进去。

cm.Send
'最后当然是执行发送了
Set cm=Nothing
'发送成功后即时释放对象

Response.Write("发送邮件成功。")
%>"

我是使用普通宽带测试的,有独立的IP,但没有成功,于是想试试使用最常见的免费邮件组件Jmail。在http://www.dimac.net下载了Jmail的免费程序,安装之后,用下面一段简单的ASP代码发送邮件成功!

"<%
Set msg=Server.CreateObject("Jmail.Message")
msg.silent=true
msg.Logging = true
msg.Charset = "gb2312"
msg.MailServerUserName = "aftersale@163.com"'输入smtp服务器验证登陆名
msg.MailServerPassword = "PassWord"'输入smtp服务器验证密码
msg.From = "AfterSale@163.com"'发件人
msg.FromName = "售后服务"'发件人姓名
msg.AddRecipient "asiabaa@163.com"'收件人 
msg.Subject = "主题"'主题
msg.Body = "本邮件由ASP自动发送!"'正文
msg.Priority = 1'设定邮件优先级1为紧急,3为正常,5为缓慢。
msg.Send ("smtp.163.com")'邮件服务器
set msg = nothing
Response.Write("Success!")
%>"

想使用msg.AddRecipient "asiabaa@163.com","ofwind@tom.com" 群发结果失败,后来想想只能使用循坏语句循环ms.AddRecipient来实现了。结果还是比较令人满意的,163.com免费的smtp速度很快,要注意的一点是发件人的电子邮件地址一定要和smtp服务器的登陆名一致,否则发送失败。

作者 林剑锋 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

内容/Content