我有一個使用CodeIgniter電子郵件庫類的PHP應用程序通過SMTP協議發送數千封電子郵件。問題是,對於發送的每封電子郵件,它都會使用與SMTP服務器的全新連接。在這種情況下如何使用持久連接?如何使用持續的SMTP連接
例如,假設我發送1000封電子郵件,然後再次進行身份驗證併發送1000封電子郵件等等。
我有一個使用CodeIgniter電子郵件庫類的PHP應用程序通過SMTP協議發送數千封電子郵件。問題是,對於發送的每封電子郵件,它都會使用與SMTP服務器的全新連接。在這種情況下如何使用持久連接?如何使用持續的SMTP連接
例如,假設我發送1000封電子郵件,然後再次進行身份驗證併發送1000封電子郵件等等。
嘗試在您的電子郵件類中使用「bcc_batch_mode」。
這裏看到更多的信息:https://codeigniter.com/user_guide/libraries/email.html
,因爲我沒有看你的代碼,我要發佈他們已經把文檔中的一個..
$這個 - >的電子郵件 - >清除()
將所有電子郵件變量初始化爲空狀態。如果您在循環中運行電子郵件發送功能,則允許在循環之間重置數據。
foreach ($list as $name => $address)
{
$this->email->clear();
$this->email->to($address);
$this->email->from('[email protected]');
$this->email->subject('Here is your info '.$name);
$this->email->message('Hi '.$name.' Here is the info you requested.');
$this->email->send();
}
,如果用你這個沒有工作,我有另一件事這是更爲合適的,老實說比內置的郵件類爲佳,儘量使用Swift-mailler庫,可以解決大部分你的問題..
我可能會嘗試在稍後階段的Swift郵件庫,但目前,我正在尋找使用當前CodeIgniter電子郵件庫的解決方案。我不確定這個函數(email-> clear)怎麼能幫助我實現持久的SMTP連接。我的目標是加快使用SMTP的電子郵件發送。類似SMTP Keep Alive功能的phpmailer庫類。 – 2012-04-11 05:54:20
你有沒有試過我的代碼?我只想知道結果 – zaherg 2012-04-11 05:55:57
是的。我已經在我的電子郵件發送代碼中使用該功能。它不能幫助我實現持久的SMTP連接 – 2012-04-11 06:00:41
簡單這樣的:
忘了CI的電子郵件LIB除非你耐心地更改類...的核心作爲一個很好的選擇,使用的PHPMailer類,把它放在你的CI /應用/庫,並且只需要將屬性$ SMTPKeepAlive設置爲true,執行您想要執行的操作並在調用Smtp關();
我在這裏使用CI有一個很好的實現,我將SMTP服務器保存在數據庫中,並且所有的郵件都被我寫的模型「填滿」了。
Rgds
我不能使用bcc_batch_mode。每封電子郵件都是唯一的,並且沒有BCC地址可供使用。我只是想爲每個發送的電子郵件避免SMTP驗證步驟。偶爾使用身份驗證是可以的,但不適用於每個電子郵件。 – 2012-04-10 14:07:06
沒有其他人可以訪問您的本地主機上的文檔 - 我認爲這是相同的頁面http://codeigniter.com/user_guide/libraries/email.html – 2012-04-10 14:20:19