微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何修复“无法在Zend Mail中打开套接字(Zend Framework 2)

请帮我解决Mac OS上的问题,当我在我的窗口上打字时,它可以正常工作.
我试试我的Mac,它显示“无法打开套接字”.
每个人都可以帮助我.

public function indexAction(){
    $mail = new Mail\Message;
                $mail->setFrom('paradise.losebaby@gmail.com','Flyoverfly Training');
                $mail->addTo('thanhbvh@yahoo.com.vn','maithanh');
                $mail->setSubject('Xác nhận việc phục hồi mật khẩu');
                $mail->setBody('maithanh');

                $transport = new SmtpTransport;
                $option = new SmtpOptions(array(
                    'name' => 'smtp.gmail.com',
                    'host' => 'smtp.gmail.com',
                    'port' => 465,
                    'connection_class' => 'login',
                    'connection_config' => array(
                        'username' => 'myemail@gmail.com',
                        'password' => 'mypass',
                        'ssl' => 'ssl'
                    )
                ));
                $transport->setoptions($option);
                $transport->send($mail);
    return new viewmodel;
}

解决方法:

可能是防火墙问题.但是我很确定你的操作系统上没有安装/启用PHP-openssl.在引擎盖下,Zend将调用stream_socket_client()以连接到远程服务器.
由于通过Gmail发送电子邮件需要安全层(SSL / TLS),stream_socket_client()将需要开放的ssl支持(ssl://).
所以你必须在操作系统上有ssl支持,检查:

获取支持套接字传输列表:

这里有一些有用的链接

> Roll your own PHP to support OpenSSL instead of Secure Transport (Mac)
> How to upgrade OpenSSL in OS X?
> Important note for curl users on OS X Mavericks 10.9
> fsockopen() (go to hostname option for details)
> Can’t run Composer on my Mac Mountain Lion – openssl extension
> OpenSSL support in PHP under MAMP
> OpenSSL Version MacOSX Homebrew
> Building OpenSSL on your Mac (MacOS X)
> Zend Mail Abastract Protocol (stream_socket_client under the hoods)
> stream_socket_client()
> OpenSSL installation
> Net Transports
> stream_get_transports()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐