我有一个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);
我已在此论坛中测试了其他解决方案,但仍然出现同样的错误。
有什么想法吗?
答案 0 :(得分:0)
由于这是以Google认为不安全的方式进行连接,因此您需要在Google允许访问之前启用它。您需要启用帐户中的设置。
访问https://www.google.com/settings/security/lesssecureapps并确保选中“启用”。
如果该选项不可用,您可能会使用Google Apps帐户(他们的商家帐户),在这种情况下,访问权限由该帐户的管理员控制。
如果仍然无法连接,请尝试使用smtp.gmail.com的实际IP地址代替它。因为我发现域解析为IPv6地址 - 而不是IPv4地址 - 并且PHP不想连接到该地址。
使用IP取代域名并不理想,因为它可能会发生变化,但如果它起作用,至少你知道在哪里集中注意力