利用ASP+JMAIL進行郵件群發的新思路

來源:互聯網
上載者:User
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。這樣既減輕伺服器壓力,也達到多線程發送
縮短髮送時間的目的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.