这是这个的后续问题
在 PHP 5.6 中,默认情况下"verify_peer"和"verify_peer_name">设置为 true,这对我来说会导致 gmail 的连接问题。
此处实施了一个修复程序,允许您设置EsmtpTransport的StreamOptions,从而允许您禁用这些检查。这很好,但是我正在 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");