怎么样通过ASP+JMAIL实现自动发邮件功能?
想在注册帐号的时候给注册者发送一封确认信?
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在线订阅聚合新闻的系统了。"&_
"不管你在任何地方,只要你能上网,你就能阅读你喜欢的订阅。"&_
"快去注册吧:http://www.gbmad.net/rss/"
''上面就是你构建的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服务器的登陆名一致,否则发送失败。
本文地址:http://www.45fan.com/dnjc/72494.html