如何在一个SMTP会话中用MODX发送多封电子邮件



我有一个脚本,可以循环发送多封电子邮件。在每封电子邮件之间,我重置modMail:

$modx->mail->reset()

由于modMail需要再次连接到SMTP服务器,发送速度变得非常慢。我想在一个SMTP会话中发送所有电子邮件。

我发现PHPMailer有一个clearAllRecipients方法,但modMail类没有。所以下面的命令不起作用:

$modx->mail->clearAllRecipients()

使用以下命令直接调用PHPMailer的方法是否安全:

$modx->mail->mailer->clearAllRecipients()

我有点担心,如果PHPMailer发生变化,稍后会出现故障。或者什么是更好的解决方案?

PHPMailer的API不太可能以任何类似的方式改变,因为它会导致BC中断。按照你的建议做应该很好,但请记住,你还需要设置SMTPKeepAlive = true才能做到这一点。请参阅PHPMailer邮件列表示例中的参考实现。

如果你认为其他modx用户会从中受益,你可以将其添加到他们提供的包装中(并提交PR(,这样你就可以从PHPMailer的内部API中抽象出来,从而避免未来的变化。

相关内容

  • 没有找到相关文章

最新更新