发送电子邮件与PhpMailer无需等待返回

时间:2017-11-16 11:04:27

标签: php phpmailer

我使用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;
}

2 个答案:

答案 0 :(得分:1)

您不需要使用ajax或配置自己的排队系统来执行此操作。只需使用本地邮件服务器 - 它隐含地具有您不需要配置的内置排队系统 - 您可以在几分之一秒内向其提交消息。有一些绩效建议on the PHPMailer wiki

答案 1 :(得分:0)

与jeroen一样,您应该使用队列来实现这一目标。如果您曾将cron配置为使用PHP,则它具有类似的原则,除了它不按计划重复相同的任务,但执行您在队列中逐个提供的任何任务。您甚至可以优先考虑这些任务。我建议你从beanstalkd开始。