FOSUserbundle正确发送电子邮件,我不能

时间:2014-12-27 21:59:59

标签: email symfony fosuserbundle swiftmailer

我已成功配置FOSUserBundle。它正确发送激活电子邮件。

我的config_dev.yml如下:

...
swiftmailer:
    transport: gmail
    username:  my_username@gmail.com
    password:  my_password
    disable_delivery:  false

我的parameters.yml如下:

parameters:
    ...
    mailer_transport: gmail
    mailer_host: null
    mailer_user: my_username@gmail.com
    mailer_password: my_password

当我尝试执行以下操作时,问题就开始了(非常基本):

    $message = \Swift_Message::newInstance()
    ->setSubject('Please sign up to ProJacked!')
    ->setFrom('send@example.com')
    ->setTo($emailaddress)
    ->setBody($this->renderView('HR/invitationemail.txt.twig'));
    $this->get('mailer')->send($message);

代码运行正常,但电子邮件是在调试模式"中发送的,所以我在分析器中看到它们但实际上并未发送。我错过了什么?我知道它非常简单:/

1 个答案:

答案 0 :(得分:0)

Symfony standard editionapp/config.yml中,默认情况下,Swift将电子邮件发送到内存:

# Swiftmailer Configuration
swiftmailer:
    transport: "%mailer_transport%"
    host: "%mailer_host%"
    username: "%mailer_user%"
    password: "%mailer_password%"
    spool: { type: memory }

您可以删除spool行以防止内存假脱机。您也可以手动刷新队列(这通常是控制台命令所需的),尽管Symfony claims此步骤不再需要经过Symfony 2.3+和Swiftmailer 2.3.5 +

$spool = $mailer->getTransport()->getSpool(); // $mailer is the mailer service
$transport = $container->get('swiftmailer.transport.real');

$spool->flushQueue($transport);

最后,请确保按照此处列出的步骤操作Gmail:http://symfony.com/doc/current/cookbook/email/gmail.html