在Symfony中为SwiftMailer设置默认FROM

时间:2011-11-16 13:10:55

标签: php symfony1 symfony-1.4 swiftmailer

mailer:
  class: sfMailer
  param:
    logging:           %SF_LOGGING_ENABLED%
    charset:           %SF_CHARSET%
    delivery_strategy: realtime
    transport:
      class: Swift_SmtpTransport
      param:
        host:       localhost
        port:       25
        encryption: ~
        username:   user@gmail.com
        password:   pass

这是swift邮件程序的配置。如果我想发送电子邮件,那么我必须使用:

    $message = $this->getMailer()->compose(
      array('user@gmail.com' => 'user'),
      $affiliate->getEmail(),
      'Jobeet affiliate token',
      body
    );

    $this->getMailer()->send($message);

我想设置这一行:

array('user@gmail.com' => 'user'),

自动。如果我在配置中更改user@gmail.com,我想自动更改此行。我在我的网站的几个地方有邮件。 有可能吗?

可能与app.yml相同吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

你可以下一步:

app.yml中的

all:
from_mail: user@gmail.com

并制作:

array(sfConfig::get("app_from_mail") => 'user'),

答案 1 :(得分:0)

如果您使用Symfony版本≥2,您可以执行以下操作。

通过在控制台中运行composer require finesse/swiftmailer-defaults-plugin来安装Swift Mailer Defaults plugin。然后将以下代码添加到yml配置中:

services:
    # Swift Mailer plugins
    app.swiftmailer.defaults_plugin:
        class: Finesse\SwiftMailerDefaultsPlugin\SwiftMailerDefaultsPlugin
        tags:
            - { name: swiftmailer.default.plugin }
        arguments:
            $defaults:
                from:
                    user@gmail.com: user
                # You can add more default properties here, e.g. sender, reply to