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

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

丟失 模式 base64 郵件隊列 一致性 缺少 出現 外部程序 功能

郵件發送原理

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

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