无法与主机smtp.gmail.com建立连接


Swift_TransportException Connection could not be established with host smtp.gmail.com

我怎么也弄不明白它到底为什么会失败。这就是我得到的确切错误:

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

致命错误:未捕获异常'Swift_TransportException'伴有消息'Connection could not establish with host smtp.gmail.com [Connection refused #111]

Connection refused是一个非常明确的错误信息。这意味着无法建立套接字连接,因为远端主动拒绝连接。

谷歌不太可能阻止连接。

很有可能你的虚拟主机提供商有防火墙设置,阻止端口465的传出连接,或者他们阻止SMTP到Gmail. 465是"错误的"端口安全SMTP,虽然它经常被使用,Gmail确实监听那里。请尝试端口587。如果连接仍然被拒绝,请致电主机并询问发生了什么。

从config.yml中删除spool: { type: memory }

那么你将会像这样添加try catch

    try{
        $mailer = $this->getMailer();
        $response = $this->getMailer()->send($message);
    }catch('Swift_TransportException $e){
        $response = $e->getMessage() ;
    }

我有同样的问题,当我使用Godaddy网络托管,并通过编辑我的解决了这个问题。env file as,

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获得的密码。

我希望这对你有帮助。

tcp:465被阻塞。尝试添加一个新的防火墙规则并添加一个规则端口465。或者检查587,将加密更改为tls。

我的解决方案是:

  'driver' => 'smtp',

 'driver' => 'mail',
在app/config/邮件

希望有帮助

在v 5.8.38中,我将env文件设置如下:

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之后,它在分片服务器上运行良好。

我有同样的问题一段时间,取代:smtp.gmail.com173.194.65.108实际上为我工作!

在我的例子中,我使用的是Laravel 5,我忘记更改位于目录根文件夹中的.env文件中的邮件全局变量(这些变量覆盖您的邮件配置)

   MAIL_DRIVER=smtp
   MAIL_HOST=smtp.gmail.com
   MAIL_PORT=465
   MAIL_USERNAME=yourmail@gmail.com
   MAIL_PASSWORD=yourpassword
默认情况下,邮件主机是:
   MAIL_HOST=mailtraper.io

我得到了同样的错误,但这对我来说是有效的。

我有同样的问题,我设法通过禁用AVAST防病毒来修复它。以及我在浏览器中的AVAST扩展。防病毒有时会阻止您的应用程序。:)希望对大家有所帮助。

首先,检查gmail SMTP服务器。你应该允许访问不太安全的应用程序,而不允许快速邮件是不可能的。为此,首先登录您的电子邮件帐户,然后进入隐私设置,然后单击登录和安全,然后单击未访问的应用程序,然后打开不太安全的应用程序选项,然后再次尝试mailer,它将工作。

在我的情况下,我遇到了GoDaddy和SSL加密的问题。

将加密设置为Null并将Port设置为80(或任何支持的端口),

如果您已经托管了您的网站,建议使用电子邮件或创建一个官方邮件来发送电子邮件假设你的url是www.example.com。然后去cpanel创建一个电子邮件,将send@example.com。然后请求设置电子邮件。将邮箱地址修改为send@example.com。然后将您的smtp更改为mail.example.com。ssl将保持465

禁用"SMTP限制";从交通和。它可以帮助你

我刚刚遇到这个问题,并通过在配置文件夹下编辑mail.php解决了这个问题。通常在使用共享主机时,他们的托管公司允许您创建一个电子邮件,例如

XXXX@yourdomainname.com

。所以去你的共享主机面板下的电子邮件设置,添加新的电子邮件。把邮箱地址和密码放到

mail.php .

它应该工作!