CakePHP SMTPTransport保持活动选项?

时间:2013-10-11 09:04:46

标签: php email cakephp smtp

CakePHP SMTPTransport是否有一个选项可以保持连接? 我使用SMTPTransport和smtp服务器发送大量邮件。 经过大量邮件后,smtp服务器拒绝连接错误消息:

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

我查看了SmtpTransport类的代码和send函数。此功能连接,验证,发送和断开每个发送请求。是否可以保持连接活着?

发送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

1 个答案:

答案 0 :(得分:0)

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

在我看来,将连接保持为默认状态是有意义的,并且只在必要时才有关闭连接的方法。所以zend框架确实如此。