在Symfony 2.8上使用Swiftmailer的默认邮件发件人

时间:2017-10-10 16:18:18

标签: php symfony email swiftmailer

我正拼命尝试使用config.yml上配置的相同电子邮件地址发送多封电子邮件

# Swiftmailer Configuration
    swiftmailer:
    transport: '%mailer_transport%'
    host: '%mailer_host%'
    username: '%mailer_user%'
    password: '%mailer_password%'
    sender_address : example@example.com
    spool: { type: memory }

问题是,我无法找到如何使用特定的sender_address参数。 Symfony文档说如果定义了,它将自动设置

    $new_campaign_mail = \Swift_Message::newInstance()
        ->setSubject('Test')
        ->setTo($user->getEmail())
        ->setBody($this->templating->render('AcmeBundle:Default:email.html.twig', array('data' => $object, 'user' => $user)), 'text/html');

 /* Is that useful ?
    $this->container->get('swiftmailer.plugin.impersonate'); */

    $this->mailer->send($new_campaign_mail);

谢谢大家! :)

1 个答案:

答案 0 :(得分:1)

您必须获取该参数sender_address并将其添加为:

    $new_campaign_mail = \Swift_Message::newInstance()
    ->setFrom($your_sender_address_parameter)
    ->setSubject('Test')
    ->setTo($user->getEmail())
    ->setBody($this->templating->render('AcmeBundle:Default:email.html.twig', array('data' => $object, 'user' => $user)), 'text/html');

您可以找到here如何获取参数,基本上如果您在控制器$this->getParameter('sender_address');中执行此操作,或者您可以将其注入服务中:

services:
    app.service.mail:
        class:  AppBundle\Service\MailService
        arguments: [%sender_address%]

编辑:

我刚刚再次阅读你的帖子,我发现swiftmailer中有一个选项可用于发件人地址,但我不认为这是你正在寻找的内容,因为这是可以阅读的解释{{3} }:

  

如果设置,所有消息将以此地址作为传递   “返回路径”地址,这是退回邮件应该去的地方。这个   由Swift Mailer内部处理   Swift_Plugins_ImpersonatePlugin类。