未捕获的异常' Swift_TransportException'有消息'连接无法与主机smtp.gmail.com建立连接[连接超时#110]'

时间:2014-05-02 04:49:00

标签: php gmail sendmail swiftmailer

我已经在谷歌搜索了它,并尝试了StackOverflow中的所有建议,但我仍然得到致命错误:

我正在使用SwiftMailer发送电子邮件 GMAIL 。它完全适用于我的本地主机,但当我上传它并试试它给我一个致命错误:

以下是我的代码的一部分:

require_once 'Swift-5.1.0/lib/swift_required.php';


$email = "fromemail@gmail.com";
$transport = Swift_SmtpTransport::newInstance('ssl://smtp.gmail.com', 465);
$transport->setUsername("username@gmail.com");
$transport->setPassword("usernamepassword");

// Create the message
$message = Swift_Message::newInstance();
$message->setTo(array(
   "to@gmail.com" => "First Name"
));
$message->setCc(array("cc_email1@gmail.com" => "Name NAme" , "cc_email2@gmail.com" => "His Name"));

$message->setSubject("Subject");

$message->setBody("The Body");

$message->setFrom($email, "Full Name");

$message->setReplyTo(array($email => "Full Name"));

// Send the email
$mailer = Swift_Mailer::newInstance($transport);
$mailer->send($message);

这是我向gmail发送电子邮件时遇到的致命错误:

  

致命错误:/homepages/41/d513702051/htdocs/php/Swift-5.1中未显示异常'Swift_TransportException',消息'无法与主机smtp.gmail.com [连接超时#110]建立连接。 0 / lib / classes / Swift / Transport / StreamBuffer.php:266堆栈跟踪:#0 /homepages/41/d513702051/htdocs/php/Swift-5.1.0/lib/classes/Swift/Transport/StreamBuffer.php(64 ):Swift_Transport_StreamBuffer-> _establishSocketConnection()#1 /homepages/41/d513702051/htdocs/php/Swift-5.1.0/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115):Swift_Transport_StreamBuffer-> initialize(Array) )#2 /homepages/41/d513702051/htdocs/php/Swift-5.1.0/lib/classes/Swift/Mailer.php(80):Swift_Transport_AbstractSmtpTransport-> start()#3 / homepages / 41 / d513702051 / htdocs /php/contactus.php(33):/homepages/41/d513702051/htdocs/php/Swift-5.1.0/lib/classes/Swift中抛出的Swift_Mailer-> send(Object(Swift_Message))#4 {main}第266行/Transport/StreamBuffer.php

3 个答案:

答案 0 :(得分:2)

我不确定,但我认为当你添加端口465时,Swift类会自动添加ssl协议。

尝试

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465);

答案 1 :(得分:1)

在使用Windows和XAMPP的情况下,解决方案是停用您的防病毒软件或打开其中的正确端口。

在我的情况下,我安装了Avast并且遇到了同样的问题(我原以为它可能是XAMPP中的Apache或PHP配置,但没有骰子)。每次,一旦我停用了我的防病毒软件,它就会起作用。

答案 2 :(得分:0)

您必须包括这个(对于Swiftmailer):

$transport->setStreamOptions(array('ssl' => array('allow_self_signed' => false,'verify_peer' => false))); 

这是所有人

enter image description here