→ rock810:如果版上有我沒爬到的現成資料,我在自刪 12/20 10:22
→ twsphere:system exec ~~ 12/20 10:36
→ rock810:現在就糗在看了PHP Manual 還是不會用system 跟 exec... 12/20 10:49
→ rock810:應該說不知道怎麼應用在寄信上 12/20 10:50
→ mervynW:win 的排程 12/20 11:27
→ olctw:去找 phplist 吧 12/20 11:48
→ Bambe:用排程 +1 12/20 12:27
推 cleanwind:ignore_user_abort(true); 12/20 12:48
→ rock810:3Q各位,我去找找 12/20 13:28
→ hSATAC:mail queue cronjob 懶一點直接丟 AWS SES 12/20 16:37
→ thitbbeb:win排程, 程式裡可以設每次寄幾封 然後沒寄完就繼續exec 12/21 01:55
→ thitbbeb:exec("php 路徑/sendmail.php") 這樣用 12/21 01:55
→ rock810:3Qthitbbeb ,我試看看,照這樣寄信我的程式要在調整一下 12/21 14:42
→ tyf99:如果只是要搞定工作,自己不想練功,可以考慮 phpmailer 12/23 13:20
> -------------------------------------------------------------------------- <
作者: pobie (嗯) 看板: PHP
標題: Re: [請益] 大量發信後端執行
時間: Thu Dec 20 12:49:19 2012
分享一下我類似的做法~~
在後台編輯完EDM時
你可以給這個EDM ITEM一個時間,例如12:30
也可以給他一個排程開啟的選項
接著排程你可以自己要一個小時跑一次或一天一次都行
至於排程設定方式,寫一個給排程用的php
在用「php x:\xx\cron_send.php」指令下去跑
在排程的php裡,如果是一個小時一次,排程設定就每個整點檢查一次
例如12點一到,就去撈MySQL檢查12點到13點之間有沒有排程已開啟且要寄的EDM
系統一找到就會自動幫你寄,只是要注意可能會有逾時寄到一半斷掉的問題
可以搭配ignore_user_abort(true)與set_time_limit(0)來因應
或者寫個log之類的來紀錄當次寄出去的EDM有沒有寄完
用排程來做的好處就是使用者不用開網頁等半天等到寄完,甚至等到出現 500 (囧
所以還是建議寫排程來做吧!!
不知有沒有解答到你的問題 @@ 參考一下囉~
※ 引述《rock810 ()》之銘言:
: 各位好
: 小弟是php的新手,最近再幫某單位做大量發信的工作(EDM)
: 目前是托別人管理MAIL SERVER的福,大量寄信都沒什麼問題
: 只是跑上萬筆的迴圈寄信,一次一封,要等大約20分鐘網頁才會跑完
: (也不知道這樣寫好不好)
: 使用者就是要開著那個頁面等個20分鐘
: 我知道有的系統是可以在使用者執行後,他可以關掉瀏覽器去做別的事情
: 剩下的伺服器會幫忙完成
: 現在想實作這一點
: 找了一些資料,但是很雜很亂,沒有頭緒
: 像是EXEC、排程等等
: 能不能請版上先進給點方向
: 我現在亂想一個是用 PHP 產 MAIL LIST 在用 EXEC 去執行 VBS(自己寫一個VBS寄信)
: 只是這樣亂湊感覺起來很鳥(沒試過也不知道能不能行)...
: 我的環境是WINDOWS SERVER 2008 用PHP的 MAIL() 在寄信
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.44.121
※ 編輯: pobie 來自: 220.133.44.121 (12/20 12:53)
→ rock810:3q~我試看看,搞定後我在分享 12/20 13:30