每天遇到一个奇特的问题:
报错内容为
2021-10-28T08:00:02+00:00 ERR (3):
exception 'Zend_Mail_Protocol_Exception' with message 'Unable to connect via TLS' in /home/public_html/lib/Zend/Mail/Protocol/Smtp.php:211
Stack trace:**
此原因多数是因为服务器SMTP连接时所使用的TLS版本较高,而M1上使用的1.0版本无法安全连接通信导致。
只需要做如下操作修复此问题
复制文件从
lib/Zend/Mail/Protocol/Smtp.php
到
app/code/local/Zend/Mail/Protocol/Smtp.php
修改此文件内容第205行从
if (!stream_socket_enable_crypto($this->_socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { /** * @see Zend_Mail_Protocol_Exception */ #require_once 'Zend/Mail/Protocol/Exception.php'; throw new Zend_Mail_Protocol_Exception('Unable to connect via TLS'); }
到
if (!stream_socket_enable_crypto($this->_socket, true, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT)) { /** * @see Zend_Mail_Protocol_Exception */ #require_once 'Zend/Mail/Protocol/Exception.php'; throw new Zend_Mail_Protocol_Exception('Unable to connect via TLS'); }