• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 利用ASP+JMAIL進行郵件群發的新思路

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    背景: Email地址存于MSSql一用戶信息表中,數量上萬。 公司自有 服務器 ,集SMTP,POP3,WWW,FTP,MSSql,DNS等多種服務于一身。 JMAIL有MailMerge對象,但是免費版不能用 要求: 用ASP+JMAIL,利用公司SMTP向所有用戶發送EMAIL 思路: 直接讀取 數據庫 ,多次
    背景: 
    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。這樣既減輕服務器壓力,也達到多線程發送 
    縮短發送時間的目的。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>