我想使用SwiftMailer类库在PHP脚本中发送邮件。
Mailserver提供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
。有没有办法解决这个问题而无需修补库,如果有必要这样做,必须如何做。
希望有人可以帮助我。
最好的问候
P.S。希望我做得很好,我的英语是可以理解的。如果有问题请询问。
答案 0 :(得分:0)
我迟到了,但尝试升级到最新的swiftmailer版本,它将解决您的问题。我有5.4.1版本并切换到5.4.6以使其正常工作