台灣最大程式設計社群網站
線上人數
1326
 
會員總數:245013
討論主題:188959
歡迎您免費加入會員
討論區列表 >> 心情甘苦談 >> 請大家分享電子報大量寄發心得
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請大家分享電子報大量寄發心得
價值 : 500 QP  點閱數:7081 回應數:21

樓主

小石頭
中級專家
4065 117
5124 1260
發送站內信

捐贈 VP 給 小石頭
我知道這個問題很老了~~但大家還碰到的問題都差不多!
感覺大家解決上還是有一些問題存在.
希望大家有這方面的經驗可以分享,造福大家一下
不限程式語言 跟 寄信元件(jamil cdonts cdo) .
最近有看到一篇 QQ大正在研發喔 希望QQ大也能分享一下

我最近剛好也碰到這個很煩的問題?
我先分享一下我的做法.

語言:ASP JMAIL MSSQL
我有一份寄信名單約五百人 首先先把500人EMAIL 存到資料庫
然後寫有一頁是用AJAX 每六秒更新
讀取內容功能: 每六秒讀取 5 人MAIL 含寄送JMAIL 程式
大約如下


五人讀取完寄送完 後面在加一段 刪除剛五人的MAIL 程式
就這樣一直循環到資料庫為 0 結束

但中間有時會造成程式死當
我在想是寄信問題造成的,有時約三十封左右程式就會變的很慢
照理說應每六秒更新但有時變二分鐘才有反應,我也不知會什麼會這樣
好的是 他有時會繼續run 但有時就會不動了,所以我自己又寫了一個
頁面叫 剩餘未發完郵件 讀取資料庫剩餘mail 在重覆寄發(上面動作再循環)
我的上面方式約 500封 幾乎要二個半小時才完成! 有點浪費時間
但信件大部份都有收到也沒有被擋問題!我自己是有收到,別人我就不知了!

因為我不是自己架設主機所以無法利用小舖有些人所說的 架好幾台MAIL SERVER 分批寄出
我是租虛擬主機 我也問過廠商 是否有限制jmail 或主機設限寄信等問題
他們回覆並沒有這方面限制 但一天發送量不得超過六百封..但程式執行還是很不穩
心中也有個欵問! 用CDO 會不會比較好 但還沒測試..如果有結果在跟大家說~

請大家也分享一下是否有這方面大量寄發電子報的經驗

祝大家新年快樂 ^^




本篇文章發表於2009-02-09 11:46
== 簽名檔 ==
人一生~~省吃儉用 只為了一個.......(貨櫃屋) 
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

nobo
捐贈 VP 給 nobo 檢舉此回應
有時可能是~mail addrss格式錯誤吧
你有在發送的地方加上
try
執行的程式
catch
如果錯誤則執行
finally
不管對錯都執行的程式
End try
本篇文章回覆於2009-02-09 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵的作法有點類似
不過還多考慮mail server
也就是在一次撈取信件的過程中
儘量挑選不同mail server的信箱來寄

另外小喵是跑排程、非AJAX
本篇文章回覆於2009-02-09 12:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小石頭
捐贈 VP 給 小石頭 檢舉此回應
#1 抱歉 我沒post 完整 我是有加一行 on error resume next
所以在怎麼樣都會跑到 另一段刪mail 才對!
怪的事有時呆一分鐘那支程式又活起來繼續寄信,通常呆五分鐘頁面沒變我就
跑到剩餘頁面寄送 ~~ mail中 我也是懷疑mail格式有些有問題..哈..我也沒辦法一個一個去檢驗!
感謝提醒~ ^^

#2 小喵考慮真詳細連寄送不同家都考慮到~~ 不錯的見議!
本篇文章回覆於2009-02-09 14:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

Mark Shu
捐贈 VP 給 Mark Shu 檢舉此回應
之前的作法是
因為有大量的mail要寄出 但每日的數量不固定
所以是
1.在晚上十二點的時候 跑sql server設定的job,把符合條件要寄送的資料抓出來放到ㄧ個table 例如叫做 SendMailTable
2.凌晨ㄧ點的時候,跑windows設定的排程,執行一個c#寫的 郵件發送程式,每發出ㄧ封信 就會在SendMailTable 的欄位中註記已送出,每次送出的郵件數量,為當日需寄送的五分之ㄧ
3.凌晨二點的時候,再跑ㄧ次windows設定的排程,找出SendMailTable 的欄位中註記[未送出]的資料,再發送ㄧ次,再寄出五分之ㄧ,以此類推到凌晨五點,全部會寄完
4.每週以sql server設定的job 定時清空 SendMailTable,以免累積過多的舊資料
5.每日早上派員檢查SendMailTable 的欄位中,是否還有註記未發送的郵件資料,將那些資料,以手動的方式 執行發送程式。
本篇文章回覆於2009-02-09 21:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

桂正和
捐贈 VP 給 桂正和 檢舉此回應
如果不是每天繁忙發送電子信箱
屬於偶爾發送的話可以玩看看一個軟體
DMailer
http://dm.sunup.net/0chines.php
穩定性跟速度挺不錯的
寫支程式產生發送名單之後
稍微設定一下即可發送
之前用IBM的伺服器加上2MB的線路
發送十幾萬筆也不過花了一天的時候
本篇文章回覆於2009-02-12 14:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
你如果知道Dmailer是個有問題的程式
你還會敢用嗎??


Dmailer,5年前就玩過了,打死不再用,公司裡誰敢用,我就砍誰.
本篇文章回覆於2009-02-12 17:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

小和
檢舉此回應
用AJAX 每六秒更新...
每六秒讀取 5 人MAIL 寄送...
如果 六秒內 尚未將 5 人 Email 寄送完畢,網頁又更新..要繼續寄送下5人的Email..
結果會如何呢?
本篇文章回覆於2009-02-13 16:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
不錯的參考

小和
檢舉此回應
很久很久以前我寫的時候,是一次就寄500封出去,
但是現在一次寄大量的信件出去,會不會被當作垃圾信、廣告信擋掉阿 XD
本篇文章回覆於2009-02-13 16:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

小石頭
捐贈 VP 給 小石頭 檢舉此回應
#7 會在重新寄送.. (有可能重覆寄送) 但基本上六秒我估算 是可以 跑完的..
當然 只怕主機那裡主機lag 這我就不太知 怎麼計算了~~!
#8 一次五百封 ........ 我也這樣寄過! 發現 虛擬主機那會有timeout 問題
timeout 完去查看 只寄出三十封左右..所以才改用 每幾秒寄幾封出去!
本篇文章回覆於2009-02-13 18:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

溫子
捐贈 VP 給 溫子 檢舉此回應
亂槍打鳥浪費頻寬又沒效率...

去和 Y公司 買名單,還可以因你的客群需求,下條件購買~~~
本篇文章回覆於2009-02-13 19:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

桂正和
捐贈 VP 給 桂正和 檢舉此回應
#6
是甚麼樣的問題?
提出來參考一下吧~~^^
本篇文章回覆於2009-02-16 18:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
比如說
當你明明寄的都是xxx.hinet.net的客戶
程式卻自己"另外"連到Yahoo,MSN信件主機去...
明明使用者只註冊了你的電子報
結果過沒幾天,全台灣的發報商都有了他的Email
本篇文章回覆於2009-02-17 12:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

桂正和
捐贈 VP 給 桂正和 檢舉此回應
#12
網路上有看到這樣的傳言
程式本身裡面真的有傳送名單到作者那裡的後門功能?
本篇文章回覆於2009-02-17 12:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
最有價值解答

QQ的乖乖餃
捐贈 VP 給 QQ的乖乖餃 檢舉此回應
這種東西不可能用AJAX做啦(網頁一直在那邊背景來回,一定比較慢的)
大量的時候, 數台電腦/不同IP/執行緒/多MAIL SERVER來源(目標)/隨機數量/ 隨機時間/ 半隨機標題/半隨機內容
....---> 我指的大量是說像我這樣都胡搞一次寄百萬封的喔
最重要的是要搭配各ISP最好都有"內線"人員幫你設定別擋信(目前hinet/so-net/seednet都有爪牙在, 哈哈)
這樣才能保證大量的廣告信一定出的去
我的經驗是, 2~3成就能很棒了(信裡通常有超聯結, 點下去我的網站會記錄到)
想想看, 寄出2百萬封的2成就40萬封了哩

另外, EmailList表格不該是寄完就刪除
而是有兩個欄位"上次寄送時間","是否寄送成功", 可能考慮再加一個"寄送次數"
這樣就可以在程式裡面控制, 比對時間是否為這次發廣告信的起點時間
如果在起點時間之後且尚未寄送成功就代表還需要繼續再試一次,
但試超過"寄送次數", 代表這個EMAIL可能為"討厭廣告信打死不開的", "根本沒有這個EMAIL"...那就真的刪除這筆資料

另外,#12裡面的事情我的程式一定會做的
這樣客戶用了程式以後, 無形中我自己的EmailList也會越來越大
不過這會事先徵得客戶同意
有些東西不要私下亂來比較不會出事
個人習慣是不用現成元件, 天曉得作者會在裡面幹嘛
本篇文章回覆於2009-02-17 12:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
不錯的參考

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
搞不好你聽到的這個流言還是我放出去的- -
因為當初我就有在綠界的相關討論區發問
為什麼會有這樣的狀況(不是懷疑,而是封包截取及使用TCPView一類的軟體所看到的結果)
尤其是拿你的電腦在Try Yahoo的帳號...
"聽說"後來還有加入廣告信發送機Client機制(你發你的,別人也透過你的電腦去發送,這樣ISP就算帳算到你頭上)
本篇文章回覆於2009-02-17 15:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.