【问题标题】:How to fix "could not open socket in Zend Mail (Zend Framework 2)如何修复“无法在 Zend Mail 中打开套接字(Zend Framework 2)”
【发布时间】:2015-02-10 14:13:32
【问题描述】:

请帮助我解决 Mac OS 上的问题,当我在 Windows 上键入时,它可以工作。 我在我的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


【解决方案1】:

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


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

这里有一些有用的链接:

【讨论】:

    猜你喜欢
    • 2016-03-23
    • 2017-11-16
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多