![](/img/trans.png)
[英]How to send emails with PHP using the PEAR Mail package with attachment
[英]Using php mail VS Pear function for many emails (but slow frequency)
我知道對於大量電子郵件,建議使用Pear,但是我想知道在我的情況下是否值得深入研究(我安裝了它,但我有很多PEAR錯誤)
我需要向訂閱者發送電子郵件(大約20K),但是我的主機每小時只允許200封電子郵件 。 可以,因為我不需要每個人都同時收到電子郵件,我可以在一個月內發送所有這些郵件,所以我並不着急。
在那種情況下,可以有一個非常簡單的循環,該循環使用mail()發送電子郵件,然后休眠18秒(低於200電子郵件/小時)。 基本上,我在想的只是做這樣的事情
for($i=0;$i<=count($recipient);$i++)
{
mail($recipient[$i].....);
sleep(18);
}
與使用PEAR(需要更多時間)相比,這可以嗎?
您是否看過使用PEAR的Mail_Queue軟件包? http://pear.php.net/package/Mail_Queue ? 您可以將其設置為在一個進程中發送X封電子郵件,然后重新運行同一腳本以發送下X封電子郵件。
除了簡明的電子郵件,我當然不會使用本機郵件功能發送任何信息,也許不會在應用程序中通知您特殊情況。
首先,我不會說好的老式mail()
的局限性...
...與音量有關。
其次,我從未使用過PEAR Mail,因此無法談論其性能或開銷,但是您的用例恰好來自容量低的電子郵件服務器。 您不需要高性能來緩慢地執行操作,是嗎?
因此,我敢說您使用錯誤的標准來評估工具。
我的建議是,您將mail()
留給極其簡單且不重要的任務(並且訂戶通信不具有這種資格),並使用適當的第三方郵件庫(不一定是PEAR的)。
特別是, Swift Mailer具有Throttler插件 ,旨在完全滿足您的要求:
如果您的SMTP服務器已設置限制以限制發送電子郵件的速率,則您的代碼將需要了解此速率限制。 Throttler插件使Swift Mailer的運行速度受到限制。
許多共享主機並沒有免費開放其SMTP服務器。 通常,他們制定了一些政策(可能是為了阻止垃圾郵件發送者),這些政策只允許您每小時/每天發送固定數量的電子郵件。
Throttler插件支持兩種速率限制模式,對於每種模式,您都需要進行數學運算以找出所需的值。 插件可以根據每分鍾的電子郵件數或每分鍾傳輸的字節數來限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.