【发布时间】:2011-07-14 18:20:38
【问题描述】:
我正在通过 Gmail SMTP 服务器从 PHP 发送电子邮件。我一直在使用带有 SMTP 设置的 CakePHP 电子邮件组件。我最初在端口 465 上使用 SSL 一切正常,但发现我的网络主机不允许超过 465 的传出流量。但是他们确实告诉我允许通过端口 587 的传出连接。
在阅读http://mail.google.com/support/bin/answer.py?answer=13287 之后,我认为这就像更改端口号和协议一样简单,但我无法让它工作。
有问题的代码行似乎是 fsockopen 调用:
fsockopen("ssl://smtp.gmail.com", 465, $errNum, $errStr, 30); // WORKS
fsockopen("tls://smtp.gmail.com", 587, $errNum, $errStr, 30); // FAILS
给出的错误是:
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number in Command line code on line 1
Warning: fsockopen(): Failed to enable crypto in Command line code on line 1
Warning: fsockopen(): unable to connect to tls://smtp.gmail.com:587 (Unknown error) in Command line code on line 1
这是 PHP 5.3,phpinfo 显示 OpenSSL 已启用。任何帮助将不胜感激。
【问题讨论】:
标签: php cakephp smtp gmail ssl