如何使用持久性SMTP连接

时间:2012-04-10 13:39:38

标签: php codeigniter smtp persistent

我有一个PHP应用程序,它使用CodeIgniter Email库类通过SMTP协议发送数千封电子邮件。问题是,对于发送的每封电子邮件,它使用与SMTP服务器的全新连接。在这种情况下如何使用持久连接?<​​/ p>

例如,假设我发送了1000封电子邮件,然后再次进行身份验证,再发送1000封电子邮件等等。

3 个答案:

答案 0 :(得分:0)

尝试使用&#34; bcc_batch_mode&#34;在您的电子邮件课程中。

有关详细信息,请参阅此处:https://codeigniter.com/user_guide/libraries/email.html

答案 1 :(得分:0)

因为我没有阅读你的代码,我将发布他们在文档中添加的代码..

<强> $这 - &GT;的电子邮件 - &GT;清除()

将所有电子邮件变量初始化为空状态。如果您在循环中运行电子邮件发送功能,允许在循环之间重置数据,则可以使用此功能。

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库。

答案 2 :(得分:0)

这样简单:

忘记CI的电子邮件库,除非你耐心改变班级的核心......作为一个好的选择,使用PHPMailer类,把它放在你的CI /应用程序/库中,你只需要将属性$ SMTPKeepAlive设置为true,执行您要执行的操作并调用SmtpClose();

我在这里使用CI有一个很好的实现,我将SMTP服务器保存在数据库中,所有邮件都被我写过的模型“ezfied”。

RGDS