在localhost中并通过代理:无法与主机smtp.gmail.com建立连接[连接超时#110]

时间:2013-09-18 14:30:44

标签: email symfony swiftmailer

我有一个symfony2应用程序,我使用swiftmailer发送电子邮件。关键是我通过代理访问,我不知道错误是由于这个原因。 这是我的配置文件(config.yml)

swiftmailer:
    transport:  gmail
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   myusername@gmail.com
    password:   mygmailpass
    delivery_address: mydeliveryaddress@miserver.com

$host = 'dev' == $this->container->getParameter('kernel.environment') ? 'http://localhost' : 'http://www.site.com/web/app.php';
$message = \Swift_Message::newInstance()
                    ->setSubject('Invitacion a Misitio.com')
                    ->setFrom('myusername@gmail.com')
                    ->setTo('test@gmail.com')
                    ->setBody(
                    $this->renderView('MyBundle:User:inviteFriendEmail.html.twig',array(
                            'token' => $token,
                            'user'  => $user,
                            'host'  => $host  
                           ))
                    );
        $this->get('mailer')->send($message);

我已在此论坛中测试了其他解决方案,但仍然出现同样的错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于这是以Google认为不安全的方式进行连接,因此您需要在Google允许访问之前启用它。您需要启用帐户中的设置。

访问https://www.google.com/settings/security/lesssecureapps并确保选中“启用”。

如果该选项不可用,您可能会使用Google Apps帐户(他们的商家帐户),在这种情况下,访问权限由该帐户的管理员控制。

如果仍然无法连接,请尝试使用smtp.gmail.com的实际IP地址代替它。因为我发现域解析为IPv6地址 - 而不是IPv4地址 - 并且PHP不想连接到该地址。

使用IP取代域名并不理想,因为它可能会发生变化,但如果它起作用,至少你知道在哪里集中注意力