如何提高PHP邮件发送的效率?

如何提高PHP邮件发送的效率?,php,email,cakephp-3.0,Php,Email,Cakephp 3.0,我正在使用PHP向CakePHP中的多个人发送邮件 我目前正在收件人数组上使用foreach,该数组包含邮件地址和名称,并发送邮件。发送邮件需要相当长的时间,而且不能将收件人的邮件作为数组,因为所有邮件之间都有细微的差异,例如收件人的姓名 邮件使用相同的模板,但参数不同,我是否可以提高效率 更新:这是电子邮件模板 <?= $userSex ?> <?= $userName ?>, <br> Thanks for ordering!<br> Your

我正在使用PHP向CakePHP中的多个人发送邮件

我目前正在收件人数组上使用
foreach
,该数组包含邮件地址和名称,并发送邮件。发送邮件需要相当长的时间,而且不能将收件人的邮件作为数组,因为所有邮件之间都有细微的差异,例如收件人的姓名

邮件使用相同的模板,但参数不同,我是否可以提高效率

更新:这是电子邮件模板

<?= $userSex ?> <?= $userName ?>, <br>
Thanks for ordering!<br>
Your order's ID is "<?= $orderID ?>".<br>
You can check the shipping status on our website.<br>
Thank you and hope you have a wonderful day.
发送的每封邮件都略有不同


有没有办法提高邮件速度?

您的邮件速度将由您配置的传输速度决定(请参阅)

像这样按顺序发送电子邮件总是需要时间,而且通常是在某种后台过程中完成的(比如cron作业)


如果你真的需要发送比快速传输更快的电子邮件(对于订单和其他事务性电子邮件,我怀疑这一点),你可以研究其他选择。大多数电子邮件API服务提供某种方式,使用模板(如Sendgrid、Mandrill、Mailgun、邮戳等)发送批量消息。

感谢回复,我将尝试后台流程(之前从未尝试过)。@RLC_TPJM检查CakePHP“Shell”,然后
$mail_list = {
    [0]=>{
        'userSex'=>'Miss',
        'userName'=>'V',
        'orderID'=>'xxxxxxxx'
    },
    [1]=>{
        'userSex'=>'Mr.',
        'userName'=>'Arasaka',
        'orderID'=>'xxxxxxxx'
    }
}
foreach($mail_list as $target) {
    $email = new Email();
    $email->viewBuilder()->setTemplate('notify_template');
    $email->setEmailFormat('html')
            ->setSubject($subject)
            ->setViewVars([
                'userSex' => $target['userSex'],
                'userName' => $target['userName'],
                'orderID' => $target['orderID'],
    ]);
    $emailRes = $email
        ->setFrom(['no-reply@service.com' => 'service announence'])
        ->setTo($target['email'])
        ->setSubject($subject)
        ->send();
    if (!$emailRes) {
        $res = false;
        break;
    }
}