我无法想象我的生活为什么它失败了......这是我得到的确切错误:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection
could not be established with host smtp.gmail.com [Connection refused #111]' in
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php:259
Stack trace: #0
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php(64):
Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/content/38/6896038/html/test/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/content/38/6896038/html/test/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() #3 /home/content/38/6896038/html/test/contact.php(55): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in /home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php on line 259
我使用的代码就是我从教程中获得并阅读这里的示例,这里是:
require_once 'lib/swift_required.php';
$transport = Swift_MailTransport::newInstance();
// Create the Transport the call setUsername() and setPassword()
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername('email@googleappsdomain.com')
->setPassword('xxx')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$nombre = $_POST['name'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$title = $_POST['jobtitle'];
// Create the message
$message = Swift_Message::newInstance()
// Give the message a subject
->setSubject('Nuevo applicante para: ' . $title)
// Set the From address with an associative array
->setFrom(array('no-reply@topytop.com.pe' => 'no-reply'))
// Set the To addresses with an associative array
->setTo('email@thisemail.com')
// Give it a body
->setBody('<html>
<head></head>
<body>
<table>
<tr>
<td>Nombre:</td><td>' . $nombre . ' ' . $apellido .'</td>
</tr>
<tr>
<td>Email:</td><td>' . $email . '</td>
</tr>
<tr>
<td>Telefono:</td><td>'. $telefono .'</td>
</tr>
</table>
</body>
</html>', 'text/html')
// Optionally add any attachments
->attach(Swift_Attachment::fromPath($_FILES["file"]["tmp_name"])->setFilename($_FILES['file']['name']));
// Send the message
$result = $mailer->send($message);
非常感谢任何帮助,我已完成阅读和搜索,无法找到解决方案:(
编辑:显然这是一个gmail的问题,我改为另一个smtp,它工作..:S答案 0 :(得分:18)
致命错误:未捕获的异常'Swift_TransportException',消息'无法与主机smtp一起建立连接[连接被拒绝#111]
拒绝连接是一个非常明确且清晰的错误消息。这意味着无法建立套接字连接,因为远程端主动拒绝连接。
谷歌不太可能阻止连接。
您的网络托管服务提供商很可能具有阻止端口465上的传出连接的防火墙设置,或者他们阻止SMTP到Gmail。 465是安全SMTP的“错误”端口,虽然经常使用,但Gmail确实在那里收听。请尝试使用端口587。如果仍然拒绝连接,请致电主持人并询问他们的情况。
答案 1 :(得分:6)
从您的config.yml 中删除
spool: { type: memory }
然后你将添加像这样的try catch
try{
$mailer = $this->getMailer();
$response = $this->getMailer()->send($message);
}catch(\Swift_TransportException $e){
$response = $e->getMessage() ;
}
答案 2 :(得分:4)
当我使用Godaddy网络托管时遇到了同样的问题,并通过编辑我的 .env 文件解决了这个问题,
MAIL_DRIVER=smtp
MAIL_HOST=XXXX.XXXX.in
MAIL_PORT=587
MAIL_USERNAME=dexxxxx
MAIL_PASSWORD=XXXXXXXX
MAIL_ENCRYPTION=tls
MAIL_HOST是Godaddy的域名,MAIL_USERNAME是Godaddy的用户名,MAIL_PASSWORD是Godaddy的密码。
我希望这对你有帮助。
答案 3 :(得分:3)
tcp:465被阻止了。尝试添加新的防火墙规则并添加规则端口465.或检查587并将加密更改为tls。
答案 4 :(得分:1)
我的解决方案是改变:
'driver' => 'smtp',
到
'driver' => 'mail',
在app / config / mail
中希望有所帮助
答案 5 :(得分:0)
我有一段时间遇到同样的问题,替换:smtp.gmail.com
173.194.65.108
实际上对我有效!
答案 6 :(得分:0)
在我的情况下,我使用的是Laravel 5,我忘了更改位于目录根文件夹中的.env文件中的邮件全局变量(这些变量会覆盖您的邮件配置)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=yourmail@gmail.com
MAIL_PASSWORD=yourpassword
默认情况下,mailhost为:
MAIL_HOST=mailtraper.io
我收到同样的错误,但这对我有用。
答案 7 :(得分:0)
我有同样的问题,我设法通过禁用我的AVAST Anti Virus来修复它。以及我在浏览器中的AVAST扩展。防病毒有时会阻止您的应用程序。 :)我希望它对任何人都有帮助。
答案 8 :(得分:0)
首先,检查gmail SMTP服务器。你不得不允许访问安全性较低的应用程序,而不允许使用快速邮件程序。首先登录您的电子邮件帐户,然后进入隐私设置,然后单击登录和安全性,然后单击没有访问权限的应用程序,然后点击更少安全应用程序选项然后再次尝试邮件,它将工作。
答案 9 :(得分:0)
就我而言,我在GoDaddy和SSL加密方面遇到了麻烦。
将加密设置为Null,将端口设置为80(或任何支持端口)即可完成工作。
答案 10 :(得分:0)
如果您已经托管了网站,则建议使用电子邮件或创建正式邮件来发送电子邮件 假设您的网址是www.example.com。然后转到cpanel创建一封电子邮件,该电子邮件将为send@example.com。然后请求设置电子邮件。将电子邮件地址更改为send@example.com。然后更改您的smtp,即mail.example.com。 ssl将保持465
答案 11 :(得分:0)
在5.8.38版中,我将环境文件设置如下:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=mygmail@gmail.com
MAIL_PASSWORD=difficultCombination
MAIL_ENCRYPTION=ssl
MAIL_FROM_NAME=myWebappName
完成php artisan config:clear
之后,它在分片服务器上运行良好。
答案 12 :(得分:-2)
我刚遇到这个问题并通过编辑config文件夹下的mail.php解决了这个问题。通常在使用共享主机时,托管公司允许您创建电子邮件,例如
XXXX@yourdomainname.com
。因此,请转到共享主机cpanel下的电子邮件设置并添加新电子邮件。获取该电子邮件和密码并在
中进行设置mail.php。
它应该有用!