1. 程式人生 > >php+mysql模擬佇列傳送郵件,能不能見網友就靠這封郵件了

php+mysql模擬佇列傳送郵件,能不能見網友就靠這封郵件了

郵件傳送原理

telnet命令模擬郵件傳送:
1、cmd命令下telnet連線上QQ的smtp伺服器
telnet smtp.163.com 25
遇到問題以及解決辦法:

telnet命令錯誤

控制面板下windows功能

開啟telnet客戶端後重新執行即可成功
2、和smtp伺服器打招呼
helo Miss (hi可以為任意其他英文字元)

表示連通
3、用base64加密的郵箱和密碼登入字串

qq郵箱出現太多問題,小編申請了163郵箱

這是傳送結果
利用phpmailer類實現郵件傳送

下載地址
檔案下載下來後在根目錄下建立index.php檔案,輸入以下demo,將下載下的檔名修改為PHPMailer

未擷取的地方沒有修改
執行index.php檔案後的傳送結果
為什麼需要佇列(FIFO)
訊息佇列解決的是將突發大量請求轉換為後端能承受的佇列請求,比如你的伺服器一秒能處理100個訂單,但秒殺活動1秒進來1000個訂單,持續10秒,在後端能力無法增加的情況下,你可以用訊息佇列將總共10000個請求壓在佇列裡,後臺consumer按原有能力處理,100秒後處理完所有請求(而不是直接宕機丟失訂單資料)。
訊息佇列中介軟體是分散式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題。實現高效能,高可用,可伸縮和最終一致性架構。是大型分散式系統不可缺少的中介軟體。
在phpcli模式下測試佇列
重點:exec — 執行一個外部程式

啟用do_queue.php後自動執行cli.php檔案
cli模式下測試郵件佇列
建表儲存需要傳送的郵件

sql表
使用php+mysql輪訓實現佇列
cli模式下測試佇列

xiaopingguo950321 722584796