【发布时间】: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