我有一個系統發送大量的電子郵件報告(每天約有超過500封電子郵件)。我不是一個垃圾郵件發送者:)這不是一大堆的電子郵件,但他們發送循環,我經常得到這個錯誤「PHP警告:郵件():無法執行郵件傳遞程序」。我知道有這個問題的PEAR :: Mail_Queue包。但是,如果這個軟件包是真正有用的東西,或者我需要尋找其他東西,請讓我知道。非常感謝在循環中發送大量電子郵件
0
A
回答
0
你必須在郵件之間使用sleep(),這可以解決這個問題。
0
另一種方法也可以是直接通過SMTP服務器發送郵件。這節省了您通過「通過shell」調用sendmail(或使用任何MTA)來傳遞郵件的往返行程。例如,Zeta Mail component允許您直接通過SMTP服務器發送郵件,而不需要特殊擴展。
1
「PHP的警告:電子郵件():無法執行郵件傳遞計劃」
...含義正是它在錫說。 PHP只會將電子郵件轉移到Linux/Unix/POSIX系統上的外部程序(由php.ini中的sendmail_path定義)。並且在某些情況下返回錯誤。這不是PHP代碼中的錯誤。
除非你有一個非常糟糕的MTA配置,否則問題將不會通過使用SMTP連接來解決。
您需要查看MTA中的日誌,瞭解其無法發送郵件的原因 - 或者將郵件可執行文件封裝在日誌腳本中。
2
您可以使用PEAR's Mail_Queue package直接通過SMTP服務器發送郵件 - 也可以在後臺運行,因此不會延遲或增加腳本執行時間。
使用Mail_Queue包的另一個優點是,您可以檢索爲記錄目的而發送的每封郵件的esmtp ID - 我不知道這是否可以使用Zeta Mail組件或任何其他郵件組件。
我已經開發了一些面向公衆的和僅限於局域網的解決方案,它使用這個組件並且沒有任何重大問題。
相關問題
- 1. 在asp.net發送大量電子郵件
- 2. mysqli發送電子郵件循環
- 3. 批量發送大量電子郵件
- 4. Python - 發送大量電子郵件
- 5. 大量發送電子郵件
- 6. 在一個循環中發送電子郵件在PYTHON 2.7
- 7. 如何在codeignitor電子郵件中使用foreach循環發送
- 8. 在while循環中發送電子郵件
- 9. 在循環中發送電子郵件時設置的時間量
- 10. 在MVC-3中發送大量電子郵件
- 11. 在ASP.NET中發送大量電子郵件
- 12. 發送循環輸出到Python中的電子郵件
- 13. 正在發送電子郵件的暫停循環
- 14. 無法發送時重發smtp電子郵件的循環
- 15. 發送電子郵件操作不發送電子郵件
- 16. PHP發送電子郵件多次發送電子郵件
- 17. 發送巨大的電子郵件
- 18. 在php中分段發送大量電子郵件?阻止垃圾郵件
- 19. 大容量電子郵件發送的罐子
- 20. PHP:批量發送大量電子郵件
- 21. 發送PHP腳本中的大量電子郵件
- 22. 正在發送大量電子郵件 - 通訊
- 23. 加速發送大量電子郵件在c#.net
- 24. 迭代通過複選框,發送電子郵件和循環
- 25. 兩個foreach循環合併發送電子郵件
- 26. Foreach爲每個循環發送電子郵件
- 27. VBA代碼循環發送多封電子郵件
- 28. PHP與循環的數據發送電子郵件
- 29. 如何使用循環從R內發送電子郵件
- 30. 通過用戶循環發送電子郵件
感謝您的回答。但是,我擔心,這會增加腳本執行時間,不是嗎? – alagar 2011-02-28 13:27:48
Heya隊友,它會爲你的執行增加一點時間,但它不會計入最大執行時間。因此,一天一次500封郵件,甚至5000封郵件都無關緊要。 – 2011-03-03 09:58:00