我在Symfony2应用程序中使用FOSUser包。我正在尝试使电子邮件功能正常运行,但无法成功发送任何电子邮件。
我的开发环境是一个Ubuntu虚拟机。我尝试使用here所述的Gmail帐户详细信息。我还检查了错误日志,但没有记录有关电子邮件发送的信息。
我尝试使用测试控制器发送测试电子邮件;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class TestEmailController extends Controller
{
public function sendEmailAction()
{
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('send@example.com')
->setTo('me@myemailaddress.com') // use a valid email in actual code...
->setBody('yo, wassup!');
$this->get('mailer')->send($message);
return $this->render('SysDevPunctualityBundle:TestEmail:sendEmail.html.twig', array(
// ...
));
}
}
然而,这会在Symfony的Web Profiler工具栏中触发错误,我收到以下消息; " Token" 3c494e"在数据库中找不到。"
经过一番挖掘后,我发现这个question我遵循了删除假脱机选项的建议,并添加了一个' from_email'选项。这有所不同,我现在收到超时错误:
Connection could not be established with host smtp.gmail.com [Connection timed out #110]
我的猜测是防火墙阻止了请求,我不知道如何确定。
感谢是否有人能指出我正确的方向。
答案 0 :(得分:1)
我发现问题的根源是我的工作防火墙阻止了对Gmail SMTP服务器的访问。我切换到另一个SMTP服务器(由我们的IT部门设置),现在电子邮件发送工作正常。
答案 1 :(得分:0)
检查食谱中的这两个链接,了解如何在开发时处理电子邮件:http://symfony.com/doc/current/cookbook/email/dev_environment.html& http://symfony.com/doc/current/cookbook/email/spool.html