我有一个PHP应用程序,它使用CodeIgniter Email库类通过SMTP协议发送数千封电子邮件。问题是,对于发送的每封电子邮件,它使用与SMTP服务器的全新连接。在这种情况下如何使用持久连接?</ p>
例如,假设我发送了1000封电子邮件,然后再次进行身份验证,再发送1000封电子邮件等等。
答案 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