Отправитель почты по умолчанию в Swiftmailer на Symfony 2.8

Я отчаянно пытаюсь отправить несколько писем, используя один и тот же адрес электронной почты, настроенный следующим образом в config.yml

# Swiftmailer Configuration
    swiftmailer:
    transport: '%mailer_transport%'
    host: '%mailer_host%'
    username: '%mailer_user%'
    password: '%mailer_password%'
    sender_address : [email protected]
    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);

Спасибо всем ! :)


person 3615_Internet    schedule 10.10.2017    source источник
comment
Вы можете попытаться получить параметр sender_address, если вы работаете в контроллере, вам просто нужно вызвать $this->getParameter('sender_address'); а затем поместите его в метод setFrom() экземпляра Swift_Message.   -  person Mohamed Radhi Guennichi    schedule 11.10.2017


Ответы (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');

Вы можете узнать здесь, как получить параметр, в основном, если вы делаете это в контроллере $this->getParameter('sender_address'); или вы можете внедрить его в службу как:

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

ИЗМЕНИТЬ:

Я только что прочитал ваш пост еще раз и вижу, что в swiftmailer есть опция для адреса отправителя, но я не думаю, что это то, что вы ищете, поскольку это объяснение, которое можно прочитать здесь:

Если установлено, все сообщения будут доставляться с этим адресом в качестве адреса «обратного пути», куда должны направляться возвращенные сообщения. Это обрабатывается внутри класса Swift_Plugins_ImpersonatePlugin Swift Mailer.

person kunicmarko20    schedule 10.10.2017
comment
Да, я видел этот вариант, но я не могу понять, как его правильно использовать... - person 3615_Internet; 11.10.2017
comment
@ 3615_Internet, вы можете попробовать решение, которое я разместил в первой части ответа, поскольку оно работает для меня. - person kunicmarko20; 11.10.2017