【发布时间】:2012-04-22 19:31:01
【问题描述】:
我有一个 PHP 应用程序,它使用 CodeIgniter 电子邮件库类通过 SMTP 协议发送数千封电子邮件。问题是,对于发送的每封电子邮件,它都使用与 SMTP 服务器的新连接。在这种情况下如何使用持久连接?
例如,假设我发送了 1000 封电子邮件,然后我再次进行身份验证并再发送 1000 封电子邮件等等。
【问题讨论】:
标签: php codeigniter smtp persistent
我有一个 PHP 应用程序,它使用 CodeIgniter 电子邮件库类通过 SMTP 协议发送数千封电子邮件。问题是,对于发送的每封电子邮件,它都使用与 SMTP 服务器的新连接。在这种情况下如何使用持久连接?
例如,假设我发送了 1000 封电子邮件,然后我再次进行身份验证并再发送 1000 封电子邮件等等。
【问题讨论】:
标签: php codeigniter smtp persistent
由于我没有阅读您的代码,因此我将发布他们放入文档中的代码..
$this->email->clear()
将所有电子邮件变量初始化为空状态。如果您在循环中运行电子邮件发送功能,则可以使用此功能,允许在循环之间重置数据。
foreach ($list as $name => $address)
{
$this->email->clear();
$this->email->to($address);
$this->email->from('your@example.com');
$this->email->subject('Here is your info '.$name);
$this->email->message('Hi '.$name.' Here is the info you requested.');
$this->email->send();
}
如果这对你不起作用,我还有一个更合适的东西,老实说比内置邮件类更好,尝试使用Swift-mailler 库,它可以解决你的大部分问题..
【讨论】:
就这么简单:
忘记 CI 的 Email 库,除非您有耐心更改该类的核心......将属性 $SMTPKeepAlive 设置为 true,做你想做的事,然后调用 SmtpClose();
我在这里使用 CI 实现了一个很好的实现,我将 SMTP 服务器保存在数据库中,并且所有邮件都由我编写的模型“ezfied”。
Rgds
【讨论】:
尝试在您的电子邮件课程中使用“bcc_batch_mode”。
查看这里了解更多信息:https://codeigniter.com/user_guide/libraries/email.html
【讨论】: