如何在Symfony2应用程序中调试电子邮件发送?

时间:2014-10-31 15:44:57

标签: php email symfony

我在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] 

我的猜测是防火墙阻止了请求,我不知道如何确定。

感谢是否有人能指出我正确的方向。

2 个答案:

答案 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