我有web應用程序,我想實現電子郵件系統。我的Web應用程序是一個社交網絡:當用戶更新狀態時,用戶會收到電子郵件,而任何其他用戶都會對其狀態進行評論。實現電子郵件發送的最佳方式是什麼?
什麼是最好的實現方式?在用戶發表評論後,我一直在實現電子郵件系統,然後同時向他們的用戶發送電子郵件。第二種選擇是使用計劃發送電子郵件。
我使用PHP和SwiftMailer。
爲了澄清:我應該直接發送電子郵件給用戶,或者我應該使用一個數據庫來排隊的郵件,並通過cron發送?
我有web應用程序,我想實現電子郵件系統。我的Web應用程序是一個社交網絡:當用戶更新狀態時,用戶會收到電子郵件,而任何其他用戶都會對其狀態進行評論。實現電子郵件發送的最佳方式是什麼?
什麼是最好的實現方式?在用戶發表評論後,我一直在實現電子郵件系統,然後同時向他們的用戶發送電子郵件。第二種選擇是使用計劃發送電子郵件。
我使用PHP和SwiftMailer。
爲了澄清:我應該直接發送電子郵件給用戶,或者我應該使用一個數據庫來排隊的郵件,並通過cron發送?
請嘗試phpmailer庫函數
您可以使用內置的PHP函數。請訪問以下鏈接。 http://php.net/manual/en/function.mail.php
我會傾向於不同意:發送郵件實際上很難。附件,多部分html /文本等通過圖書館更好地完成。 – halfer 2013-02-27 09:06:32
我的建議是使用郵件服務與API,如Sendgrid的大量郵件(> 100每天),否則只需使用你選擇的PHP郵件。
通過自己的服務器發送郵件有幾個缺點,主要涉及到越來越列入黑名單或標記爲垃圾郵件。這是因爲其他郵件服務器並不真正瞭解你的郵件服務器,如果突然出現很多郵件,你會看起來像一個垃圾郵件。
爲了避免一次發送大量的郵件,你也必須以某種方式通過排隊分批發送,和你需要cron作業和等。獲取未列入黑名單的也不是很容易的,簡單域的變化可能會讓你重新認定
郵件服務做你擺脫這些問題的大部分,並且是整體相當便宜。瞭解內部郵件解決方案的陷阱通常對於單個項目來說太多了,因爲它是一個相當大的話題。
免責聲明:我不爲任何郵件發送服務的工作,我只是碰巧在了他們的域名列入黑名單最近由於惡劣發電子郵件做法的工作場所。
兩個想法:最重要的是,使用Swiftmailer等庫。其次,在您的數據庫中排隊發送電子郵件,以便您可以查看發送給誰的信息,並且可以重新發送任何失敗的信息(例如,如果您的SMTP服務發生故障)。 – halfer 2013-02-27 07:44:30
感謝您的回答,是的,我正在使用迅捷的郵件。你知道如何檢測郵件是否成功發送,所以如果郵件沒有成功發送,我可以再次發送。 – viyancs 2013-02-27 07:59:10
我建議使用一個庫,因爲你在原始問題中沒有提到它。是的,我會用一個隊列。如果SwiftMailer不能聯繫你的SMTP服務器,我會認爲SwiftMailer會引發異常 - 在相關的數據庫記錄中捕獲並標記它。 – halfer 2013-02-27 09:05:43