使用快速邮件程序假脱机电子邮件时如何禁用SSL证书验证



这是这个的后续问题

在 PHP 5.6 中,默认情况下"verify_peer"和"verify_peer_name">设置为 true,这对我来说会导致 gmail 的连接问题。

此处实施了一个修复程序,允许您设置EsmtpTransportStreamOptions,从而允许您禁用这些检查。这很好,但是我正在 symfony 上假脱机电子邮件,并且假脱机时使用的传输器是 SpoolTransport 它不允许您设置流选项

我可以通过修改功能来禁用SSL检查 StreamBuffer中的"_establishSocketConnection".php并添加这些 命令stream_socket_client之前的行:

$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;

但是,这是一个肮脏的修复程序,涉及更改供应商代码。

脱机时是否有其他选项可以禁用这些检查?我的 swifmailer 配置如下,供参考

# Swiftmailer Configuration
swiftmailer:
    transport:  smtp
    host:       smtp.gmail.com
    username:   XXX
    password:   XXX
    port:       465
    encryption: ssl
    spool:
        type: file
        path: '%kernel.root_dir%/spool'

获取传输对象并调用:

$transport->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

在Symfony中,可能是这样的: $transport = $this->get("swiftmailer.mailer.default.transport");

最新更新