网络编程
位置:首页>> 网络编程>> Asp编程>> 利用ASP+JMAIL进行邮件群发的新思路

利用ASP+JMAIL进行邮件群发的新思路

 来源:CSDN 发布时间:2008-03-20 13:30:00 

标签:jmail,邮件,SMTP,asp

背景:
  Email地址存于MSSql一用户信息表中,数量上万。
  公司自有服务器,集SMTP,POP3,WWW,FTP,MSSql,DNS等多种服务于一身。
  JMAIL 有MailMerge对象,但是免费版不能用
  要求:
  用ASP+JMAIL,利用公司SMTP向所有用户发送EMAIL
  思路:
  直接读取数据库,多次循环发送,会对本来配置不高的服务器造成很大压力。
  最好能对EMAIL分批发送,每批发送间隔一段时间,以此来缓解对服务器造成的压力。
  实现:
  对EMAIL分批
  读出记录到recordset,利用常见的分页程序,将所有记录分页,每页作为一批,有多少页就分多少批
  间隔延迟
  在每页执行完毕后用<meta http-equiv="refresh" content="60;URL=SendMail.asp?page="&page>来延迟跳转
  减少执行时间:
  在循环的过程中,循环添加收件人,而不要循环发送,即

for i=1 to rs.pagesize
  msg.AddRecipient rs("Email")
  rs.movenext
  next
  msg.Send ("smtp.abc.com")

减小邮件大小
  循环添加收件人,会造成一封Email的收件人很多,这样一封Email的就会很大。
  所以,在以上代码的基础上改进一下,在循环内做个判断,当收件人Email数量到达
  20的时候就发送一次。即:

for i=1 to rs.pagesize
  msg.AddRecipient rs("Email")
   if i mod 20 = 0 then '每 20 个收信人作为一封Email发送一次
   msg.Send ("smtp.abc.com")
   msg.ClearRecipients '清除已发送的收信人
   end if
  rs.movenext
  next
  msg.Send ("smtp.abc.com") '发送余下的
  页面

Mail.asp 包含邮件主题、正文的表单,<form action="SendMail.asp" target="Send">;一个iframe页面,<iframe name="Send" src="SendMail.asp">
  SendMail.asp 包含后台发送程序,循环,延迟跳转等。
  缺点:
  发送过程中不能离开该页面
  发送的时间较长,与设置的每批发送数量、网络带宽、SMTP服务器性能有关
  改进:
  可以在Mail.asp中包含多个iframe页面,每个页面从不同的page开始发,相当于多线程发送,
  对smtp服务器压力会增大,但能缩短发送时间。
  可考虑在不同的page中采用不同的smtp服务器,例如包含多个iframe页面,在偶数页用
  smtp.abc.com,在奇数页用smtp.123.com。这样既减轻服务器压力,也达到多线程发送
  缩短发送时间的目的。

0
投稿

猜你喜欢

  •   [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋
  • 见下表:序号列类型需要的存储量1TINYINT1 字节2SMALLINT2 个字节3MEDIUMINT3 个字节4INT4 个字节5INTE
  • 众所周知当前(甚至接下来的几年)最酷的东西是iPhone。不仅仅是因为iPhone看起来不错,它们在网站方面也很不错。而且,更重要的是,很多
  • 发一个数字拼图游戏,有点小疑问前几天写得,其中一段代码还要感谢“簡簡單單愛妳”的提示,不过我还是不太明白, ,有点笨。 $(&qu
  • oracle10g数据备份 1.用sql/plus developer,选中要备份的数据表,右击选择"Export data&qu
  • 第一章:基本的圆角框第二章:透明圆角化背景图片第三章:圆角化图片 第四章:CSS圆角框组件 V1.0在上面的案例中,我只给出最为原始的圆角框
  • 在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大
  • 1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。代码:div{     b
  • IE历来被web标准的拥护者所诟病,而当FireFox横空出世以后,更多的网页制作者开始关注web标准设计。看着FireFox的市场占有率不
  • 代码如下:DECLARE @c INT DECLARE @c2 INT SELECT @c = COUNT(1) FROM dbo.Spli
  • alleen 问:下面是我制作的一菜单效果,现在的问题是当我只点击一级菜单A一次的时候,一级菜单A的背景色由绿色变成了黄色,再点击一级菜单B
  • 很高兴参加了这一期的薯片会,认识了几个朋友~~不料的却是今天我要来总结一下本次薯片会我们总共讨论了三个议题:A、 如何让“用户”更容易识别超
  • MySQL数据库配置技巧用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQ
  • 简介单例模式是创建型对象的一种,用于如何优雅的创建对象。让一个类最多产生一个对象。场景只需要一个对象就能解决并且要使用多次的场景,比如框架的
  • 在这里我们将介绍的是MySQL内存使用上的线程独享,线程独享内存主要用于各客户端连接线程存储各种操作的独享数据,如线程栈信息,分组排序操作,
  • 第一种,也是我最常用的,第一帧里加上这个比较灵活,想要自定义加入菜单,只要定义drMenu这个对象就可以了var drMenu&n
  • 最近,我有机会研究对视觉设计作用的常见误解,这些误解仍然盛行于行政主管、产品主管,工程经理和市场专家中。设计团队成员如何说明这些认识是错误的
  • 我是一个初入互联网的视觉设计师,和以往做设计感受最大的不同就是:一个设计的最终定稿会受到多方面的挑战,有来自产品经理的,来自开发的,来自测试
  • 今早打开 腾讯ISD的博客 ,看到一篇新的文章,《迷你屋视觉规范简介》,赶紧看了来学习。不过给我抓到问题咯,臭鱼不介意我在这说下吧:这套规范
  • //图片上传<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> Function GetUpload
手机版 网络编程 asp之家 www.aspxhome.com