我使用PhpMailer发送电子邮件。它工作正常。
但在某些情况下,我不想等待发送功能返回,特别是因为有时可能需要一段时间。我只想立即发送并完成功能。
有可能实现这个目标吗?
这是我使用的示例代码(与基础知识没什么不同)。
try {
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
// ...other options...
$mail->send();
return true;
} catch (Exception $e) {
return $e;
}
答案 0 :(得分:1)
您不需要使用ajax或配置自己的排队系统来执行此操作。只需使用本地邮件服务器 - 它隐含地具有您不需要配置的内置排队系统 - 您可以在几分之一秒内向其提交消息。有一些绩效建议on the PHPMailer wiki。
答案 1 :(得分:0)
与jeroen一样,您应该使用队列来实现这一目标。如果您曾将cron配置为使用PHP,则它具有类似的原则,除了它不按计划重复相同的任务,但执行您在队列中逐个提供的任何任务。您甚至可以优先考虑这些任务。我建议你从beanstalkd开始。