2015-02-09 52 views
0

Lemme前缀,这个问题通过说我已经搜索了3天可以用来发送邮件的新gmail数据。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 = '[email protected]'; 
$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') 

它结束了无尽的循环。

厌倦了在谷歌搜索这个Gmail的问题。也许任何人都面临这一点,并已有解决方案了?

+0

尝试在github上打开问题https://github.com/swiftmailer/swiftmailer/issues – Saqueib 2015-02-09 09:14:25

+0

465正在使用ssl,而587正在使用tls。 (只需几秒钟即可查找google的相关文档:https://support.google.com/a/answer/176600?hl = zh_CN)。从Swift文档: 要使SSL或TLS加密起作用,您的PHP安装必须具有适当的OpenSSL传输包装。您可以通过使用PHP函数stream_get_transports() – 2015-02-09 09:21:24

+0

@Markus no来检查PHP安装中是否存在“tls”和/或“ssl”,我已经提到,通过说厌倦了搜索这个问题,并且我已经遇到类似你的建议。我的问题是,它过去曾经工作过,但现在它不再有效。是的,我很清楚它需要tls或ssl,所以是的,他们被加载 – Yang 2015-02-09 09:38:16

回答

0

您是否在您的PHP上启用了SSL启用?

extension=php_openssl.dll in PHP.ini?

或检查您的网络管理员与发送电子邮件访问端口问题有关吗?

+0

是的,正如我已经在评论中提到的,SSL已启用 – Yang 2015-02-09 10:20:27

+0

@bad_boy对不起,我错过了看到你的命令,我曾经遇到过发送电子邮件的问题,我做得很好在我家,但它是发送电子邮件失败,当我去演示我的老师bcoz互联网学校关闭发送电子邮件端口访问,所以你可以尝试与其他互联网连接你的代码 – koe 2015-02-09 10:23:57