【发布时间】:2015-02-09 09:12:17
【问题描述】:
Lemme 前缀,这个问题是说我一直在搜索 3 天的新 gmail 可用于发送邮件的数据。
所以在构建 Swift 的传输时,我是 providing this
Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'tls')
而且,而不是 465,提供 587 没有运气。错误就像它开始运行无限循环然后脚本执行停止。
数据(用户名/密码)是 100% 正确的,并且已经过单独测试。 (使用虚拟 test.php 并包含 Swift 库),如果有帮助的话。
具体来说:
<?php
// File:test.php
require(__DIR__ . '/vendor/SwiftMailer/swift_required.php');
$email = 'my-username@gmail.com';
$pass = 'my-password';
$html = '<p>Foo bar</p>';
// Build a transport
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
->setUsername($email)
->setPassword($pass);
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('New email')
->setFrom(array($email => 'Test app'))
->setTo(array($email))
->setBody($html, 'text/html');
$mailer->send($message);
它抛出:
未捕获的异常“Swift_TransportException”和消息“无法连接 TLS 加密”
而使用时:
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
它以无限循环结束。
厌倦了在 Google 中搜索这个 gmail 的问题。也许有人遇到过这个问题并且已经有了解决方案?
【问题讨论】:
-
尝试在 github github.com/swiftmailer/swiftmailer/issues打开一个问题
-
465 使用 ssl,而 587 使用 tls。 (只花了几秒钟就找到了google的相关文档:support.google.com/a/answer/176600?hl=en)。来自 Swift 文档:为了使 SSL 或 TLS 加密工作,您的 PHP 安装必须具有适当的 OpenSSL 传输包装器。您可以使用 PHP 函数 stream_get_transports() 检查您的 PHP 安装中是否存在“tls”和/或“ssl”
-
@Markus 不,我已经提到过,说厌倦了搜索这个问题,并且我已经遇到过像你这样的建议。我的问题是它过去可以工作,但现在它不再工作了。是的,我很清楚它需要 tls 或 ssl,所以是的,它们已加载
-
@Saqueib 我相信这不是 Swift 电子邮件问题本身,因为它适用于其他提供商,而是 gmail。它过去曾经工作过
-
啊,你更新了你的问题。现在好多了。
标签: php swiftmailer