如何在Symfony的管理面板中配置电子邮件? 默认我必须在文件factories.yml中设置它:
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: ~
password: ~
我想在管理面板中设置主机,端口,加密,用户名和密码,并将其保存在我的数据库中。那么如果我发送邮件,怎样才能从数据库中获取这些数据呢?
$message = $this->getMailer()->compose(
array('jobeet@example.com' => 'Jobeet Bot'),
$affiliate->getEmail(),
'Jobeet affiliate token',
<<<EOF
Your Jobeet affiliate account has been activated.
Your token is {$affiliate->getToken()}.
The Jobeet Bot.
EOF
);
$this->getMailer()->send($message);
我可以从数据库中获取此数据:)但我不知道如何写入getMailer()。
答案 0 :(得分:4)
有一个事件被解雇when the mailer is configured。
$dispatcher->notify(new sfEvent($this, 'mailer.configure'));
所以你可以对这个事件add a listener,检索邮件程序对象,并重新配置它。
或者,如此片段中所述,您可以手动构建对邮件程序的调用并定义如何设置配置(并且在任务中使用getMailer的优势):http://snippets.symfony-project.org/snippet/377