目標: 實現模塊化,可重用,面向對象的類或包,負責自動執行用戶通知過程。 這些通知按照一定的規則集發送給多個用戶,如前所述。例如:每當新用戶註冊並且定義了系統消息,並且每個超級用戶有超過10個活動用戶時,則將該系統消息發送給所有用戶。如何實現可輕鬆與SendGrid集成的郵件隊列
這些'規則'可能會被實現爲方法或其中的SQL模型的子類。
環境: LAMP,PHP 5.3。 首選的實現將在PHP中。 SendGrid郵件投遞服務+他們的官方PHP庫。
實現(我到目前爲止的想法): 我想過使用cronjob或Apache HTTP worker,事情是這個模型將負責系統的所有電子郵件通知,並且在那種情況下它將不得不每60秒左右運行一次,以確保按時和同步交貨。 要添加或刪除cronjobs,我想過使用PHP的exec()或system(),儘管我確信有更好的方法,可能直接使用文件函數編輯cron作業文件?
問題: 任何實現都應該能夠與SendGrid集成,因爲這是我們當前使用的交付系統 ,並且它被證明是有效的。
這是系統的核心,所以它需要儘可能的防故障,並且有自診斷能力,否則沒有什麼好的結果出來,最好是將它們發送出去電子郵件通知直接通過用戶訪問的網頁,並在加載時間,設計等方面妥協。
任何想法?,我是在正確的方向呢? 我一直在尋找已經在github和其他網絡上實現的東西,但沒有任何東西符合我的需求和要求。 SendGrid也似乎不提供內置隊列。
任何幫助非常感謝!
這是一個很好的建議,但如果我們在沒有任何特定本地SMTP服務器的Azure上運行我們的應用程序,該怎麼辦?你認爲我們應該在這種情況下做什麼? – 2015-03-11 14:44:56
嗨@RobertKoritnik,我會推薦實現一個隊列服務https://msdn.microsoft.com/en-us/library/azure/hh767287.aspx來處理這個:) – bwest 2015-03-17 15:08:01