我已经在谷歌搜索了它,并尝试了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
答案 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)));
这是所有人