【问题标题】:Default mail sender with Swiftmailer on Symfony 2.8Symfony 2.8 上使用 Swiftmailer 的默认邮件发件人
【发布时间】:2017-10-10 16:18:17
【问题描述】:

我正在拼命尝试使用 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);

谢谢大家! :)

【问题讨论】:

  • 您可以尝试获取 sender_address 参数,如果您在控制器中工作,您只需调用 $this->getParameter('sender_address');然后放到 Swift_Message 实例的 setFrom() 方法上。

标签: php symfony email swiftmailer


【解决方案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 中有一个用于发送者地址的选项,但我认为这不是你要找的,因为这是可以阅读 here 的解释:

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

【讨论】:

  • 是的,我看到了那个选项,但我不知道如何正确使用它......
  • @3615_Internet 您可以尝试我在答案的第一部分中发布的解决方案,因为它对我有用。
猜你喜欢
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多