多年来,我们的网站使用SwiftMailer插件通过Gmail发送电子邮件。然而,昨天早上看似随机,它不再对我们有用;我们收到一条消息
致命错误:未捕获的异常' Swift_TransportException'有消息'无法与主机smtp.gmail.com [#0]'
建立连接
任何可能导致这种情况的想法? Gmail是否根据我们需要使用的设置进行了更改?这是我们目前所拥有的:
require_once 'path/to/swift-mailer/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com')
->setPort(465)
->setEncryption('ssl')
->setUsername('ouremail@gmail.com')
->setPassword('ourpassword')
;
$mailer = Swift_Mailer::newInstance($transport);
这些问题始于昨天上午11点左右,而且我们在那个时间结束时没有任何改变。上周我将我们的PHP版本升级到了5.6.32,但自从升级到昨天上午以来,一切正常。我甚至尝试恢复旧版本(仅回到5.6.30),但错误仍然存在。我已经研究过这里和网上其他地方的一切我可以在这个问题上找到并尽我所能,包括尝试TLS,更改端口号,使用IP而不是smtp.gmail.com,但没有任何效果。有什么想法吗?
编辑:刚刚发现该电子邮件仍可在我当地的XAMPP设置中使用。此设置运行PHP 5.5.9。所以它必须是我们的服务器或域名提供商。答案 0 :(得分:0)
这应该是一个评论,但1)它有点长,2)评论部分已经充满了无关紧要。
因此,您可以使用已知正常工作的代码,但在不更改代码的情况下更改了预期的行为。你想在网站上询问为什么会出现代码问题?
某些内容已经改变在您的代码之外。这是你应该看的第一个地方。
如果gmail突然停止工作或改变其行为,我相当肯定会有很多人谈论它。因此,最有可能的候选者是支持PHP服务器的基础设施(包括CA)。但是:
1)你没有告诉我们什么2)关于SO的偏离主题。
答案 1 :(得分:0)
我遇到了同样的问题,即快速邮件突然停止工作。 错误是
'无法与主机smtp.gmail.com建立连接[#0]'
。
我正在使用带有swift邮件的laravel通过gmail框发送电子邮件。
最终解决方案是从https://curl.haxx.se/ca/cacert.pem下载证书
然后添加" openssl.cafile = path \ cacert-2018-01-17.pem"到php.ini
。
这是因为与Windows ca库相关的内容不再更新。