0

我有一个带有 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);

我已经在这个论坛中测试了其他解决方案,但仍然是同样的错误。

有任何想法吗?

4

1 回答 1

0

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

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

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

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

使用 IP 代替域并不理想,因为它可能会发生变化,但如果它有效,至少你知道应该专注于哪里

于 2014-11-28T23:50:41.863 回答