CakePHP SwiftMailer SMTP TLS OpenSSL错误SSL3_GET_RECORD:错误的版本号

Zet*_*hor 6 php ssl openssl smtp swiftmailer

我正在尝试使用我在此处找到的CakePHP SwiftMailer组件发送电子邮件:http: //bakery.cakephp.org/articles/sky_l3ppard/2009/11/07/updated-swiftmailer-4-xx-component-with-attachments -and-插件

我发送到的服务器使用带有TLS的SMTP通过端口25.这是我尝试发送邮件时出现的错误:

Notice (8): Trying to get property of non-object [APP/views/helpers/hdl_session.php, line 14]

Warning (2): stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number [CORE/vendors/classes/Swift/Transport/StreamBuffer.php, line 271]

Warning (2): stream_socket_client() [function.stream-socket-client]: Failed to enable crypto [CORE/vendors/classes/Swift/Transport/StreamBuffer.php, line 271]

Warning (2): stream_socket_client() [function.stream-socket-client]: unable to connect to tls://mail.aedisit.com:25 (Unknown error) [CORE/vendors/classes/Swift/Transport/StreamBuffer.php, line 271]

Warning (2): Illegal offset type in isset or empty [CORE/cake/libs/i18n.php, line 177]

Warning (2): Cannot modify header information - headers already sent by (output started at /srv/www/stage/hypercool/cake/libs/debugger.php:673) [CORE/cake/libs/controller/controller.php, line 742]
Run Code Online (Sandbox Code Playgroud)

这是我的phpinfo的OpenSSL信息:

openssl
OpenSSL support     enabled
OpenSSL Library Version     OpenSSL 0.9.8o 01 Jun 2010
OpenSSL Header Version  OpenSSL 0.9.8o 01 Jun 2010 
Run Code Online (Sandbox Code Playgroud)

还有一些来自我的phpinfo的信息:

PHP Version 5.3.5-1ubuntu7.2
Registered Stream Socket Transports     tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助:-)

编辑:

SSL操作失败,代码为1. OpenSSL错误消息:错误:1408F10B:SSL例程:SSL3_GET_RECORD:版本号错误

这似乎是问题的根源.任何人都知道究竟是什么意思?

Zet*_*hor 2

我们已经解决了这个问题。问题似乎出在我们的 SSL 版本和 SwiftMailer 的连接方法上。SwiftMailer 组件尝试使用 TLS 进行连接,但它首先需要以明文方式进行连接,然后启动 TLS 连接。希望这可以帮助其他人解决这个问题。