2

CakePHP SMTPTransport 是否有一个选项可以使连接保持活动状态?我使用 SMTPTransport 和 smtp 服务器发送大量邮件。在收到大量邮件后,smtp 服务器拒绝连接并显示错误消息:

SMTP Error: 454 4.7.0 Too many login attempts, please try again later.

我查看了 SmtpTransport 类和发送函数的代码。此函数为每个发送请求连接、验证、发送和断开连接。是否有可能保持连接活动?

SmtpTransport.php 的发送函数:

public function send(CakeEmail $email) {
    $this->_cakeEmail = $email;

    $this->_connect();
    $this->_auth();
    $this->_sendRcpt();
    $this->_sendData();
    $this->_disconnect();

    return $this->_content;
}

版本:2.4.1

4

1 回答 1

0

谢谢你。我已经考虑过这样的事情,并在电子邮件配置“smtpKeepAlive”中实现了扩展的 CakeMail 和 SmtpTransport 以及一个新密钥。如果密钥设置为 true,则 SmtpTransport 不会在每个方法调用上连接、验证和断开连接。发送完所有邮件后,我可以调用一个新的断开连接方法。

在我看来,将连接保持为默认状态是有意义的,并且只有在必要时才有关闭连接的方法。Zend 框架就是这样。

于 2013-10-11T16:02:01.927 回答