【问题标题】:How to send mail with STARTTLS and self-signed certificate using Swiftmailer Library in PHP如何使用 PHP 中的 Swiftmailer 库发送带有 STARTTLS 和自签名证书的邮件
【发布时间】:2016-08-31 20:57:13
【问题描述】:

我想使用 SwiftMailer 类库在 PHP 脚本中发送邮件。

邮件服务器提供 STARTTLS 命令并使用自签名证书。

问题是 SwiftMailer tgo 发送邮件似乎是个问题。

如果我像这样简单地使用 coee,来初始化传输:

$transport = Swift_SmtpTransport::newInstance("server.example.com", 25, "tls")
->setUsername("user@example.com")
->setPassword("example");

显示此错误:

Uncaught Swift_TransportException: Unable to connect with TLS encryption

我已经在这里和其他地方搜索过。我在 StackOverflow 上找到了这个帖子:PHP - Swiftmailer using STARTTLS and self signed certificates

但是当我像这样将上述方法添加到上面的代码中时:

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

整个块如下所示:

 $transport = Swift_SmtpTransport::newInstance("server.example.com", 25, "tls")
->setUsername("user@example.com")
->setPassword("example")
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));

我收到此错误:

Call to undefined method setStreamOptions

所以看起来提到的方法已被删除或重命名。我在 SwiftMailer 文档中对此一无所知。网上只提到了一些解决方案来修补库。这些方式我都没有查,因为我不想修改库代码。

我的 SwiftMailer 版本是实际的 5.4.2。有没有办法在不修补库的情况下解决这个问题,如果有必要这样做,必须如何完成。

希望有人可以帮助我。

最好的问候

附:希望我做得很好,我的英语是可以理解的。有问题请追问。

【问题讨论】:

    标签: php email ssl swiftmailer


    【解决方案1】:

    我来晚了,但是尝试升级到最新的 swiftmailer 版本,它会解决你的问题。我有 5.4.1 版本并切换到 5.4.6 以使其正常工作

    【讨论】:

      猜你喜欢
      • 2015-01-09
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2018-04-15
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多