symfony2:不发送电子邮件

时间:2013-08-24 18:56:24

标签: php email symfony

  $mail = \Swift_Message::newInstance()
            ->setSubject($message->getSubject())
            ->setFrom($message->getEmail())
            ->setBody($message->getBody());

        $this->get('mailer')->send($mail);

使用swiftmailer时不会发送邮件。然而,当我一步一步地进入调试器时,它似乎发送了电子邮件并返回sent = 1。但是我的邮箱(gmail)中没有收到任何内容。我使用我的Gmail帐户发送电子邮件,如下所示:

parameters:
mailer_transport: gmail
mailer_host: ~ 
mailer_user: username@gmail.com
mailer_password: my-password
delivery_address: username@gmail.com



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

我已经检查了apache错误日志,没有。我运行php app/console swiftmailer:spool:send以防万一,但没有运气。

什么可以阻止发送电子邮件?

4 个答案:

答案 0 :(得分:2)

您需要:

1)删除swiftmailer配置中的假脱机行,这一行:

spool:{type:memory}

2)触发要发送的假脱机队列:

php app / console swiftmailer:spool:send

但我认为你正在寻找选项1)

答案 1 :(得分:2)

你可以尝试这个......

<强> Parameter.yml

mailer_transport: gmail
mailer_encryption: ssl
mailer_auth_mode: login
mailer_host: smtp.gmail.com
mailer_user: 'xxxxxxxxxxxx'

<强> config.yml

    swiftmailer:
       transport: gmail
       host:      smtp.gmail.com
       username:  'Yourmail-id@gmail.com'
       password:  'Password'

答案 2 :(得分:1)

- &gt; setTo部分丢失了!这解决了它。

  $mail = \Swift_Message::newInstance()
            ->setSubject($message->getSubject())
            ->setFrom($message->getEmail())
            ->setTo("me@gmail.com")
            ->setBody($message->getBody());

答案 3 :(得分:-1)

首先,当您设置spool: { type: memory }时,这意味着您确实希望通过运行spool命令手动发送电子邮件:php app/console swiftmailer:spool:send。因此删除该假脱机行将有所帮助。

其次,您需要正确配置邮件主机。出于开发目的,我强烈建议您使用SendGrid等服务,并按照此Symfony2 Mailing Setup Tutorial

中的详细说明对其进行配置

本教程还包含有关如何在Symfony2中正确设置邮件服务以及如何构建邮件模板的详细信息。

第三,如果你想坚持使用Gmail,那么正确的数据是:

mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_user: your_gmail_address@gmail.com
mailer_password: 'your_gmail_password'
mailer_port: 587