使用swiftMailer假脱机电子邮件时,如何禁用SSL证书验证

时间:2018-01-30 12:45:43

标签: php symfony swiftmailer php-5.6 symfony-2.7

这是来自this

的后续问题

在PHP 5.6中,'verify_peer''verify_peer_name'默认设置为true,这会导致gmail与我的连接问题。

已实施修复程序here,它允许您 EsmtpTransport setStreamOptions ,允许您禁用这些检查。这很好,但我在symfony上假脱机电子邮件和假脱机时使用的转发器是 SpoolTransport ,它不允许你 setStreamOptions

  

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

month <- c("201408", "201409", "201410", "201411", "201412", "201501", "201502", "201503")
index <- c(1.0000000, 0.9881163, 0.9685963, 0.9772775, 0.9570516, 0.9614457, 0.9888529, 0.8893120)
Jevons <- c(1.0000000, 0.9881163, 0.9353384, 0.8951670, 0.7550252, 0.7520039, 0.7204573, 0.7124263)
onlinedf <- data.frame(month, index, Jevons, stringsAsFactors = FALSE)

result <- ifelse(startsWith(onlinedf$month, "2014"), onlinedf$Jevons * 0.232, onlinedf$Jevons * 0.256)

然而,这是一个脏修复,涉及更改供应商代码。

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

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

1 个答案:

答案 0 :(得分:1)

获取传输对象并调用此方法:

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

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