Driver86
@Driver86
Немодератор toster.ru

Как для yii\swiftmailer\Mailer указать почту отправителя по умолчанию?

Отправляю почту через yandex. В конфиге yii2:

'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.yandex.ru',
                'username' => 'myname@yandex.ru',
                'password' => 'mypassword',
                'port' => '465',
                'encryption' => 'SSL',
            ],
],


Можно ли как-то тут указать почту отправителя?
Дабы не приходилось её постоянно указывать во время отправки:

Yii::$app->mailer->compose()
    ->setFrom('myname@yandex.ru')
    ->setTo('...')
    ->setSubject('...')
    ->setHtmlBody('...')
    ->send();


а просто:

Yii::$app->mailer->compose()
    ->setTo('...')
    ->setSubject('...')
    ->setHtmlBody('...')
    ->send();


Сейчас, если не указать почту отправителя, выскакивает ошибка:

Swift_TransportException
Cannot send message without a sender address
  • Вопрос задан
  • 627 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
любые настройки письма можно задавать через свойство messageConfig, например:
'mailer' => [
    'class' => 'yii\swiftmailer\Mailer',
    'transport' => [
        'class' => 'Swift_SmtpTransport',
        'host' => 'smtp.yandex.ru',
        'username' => 'myname@yandex.ru',
        'password' => 'mypassword',
        'port' => '465',
        'encryption' => 'SSL',
    ],
    'messageConfig' => [
        'from' => ['noreply@site.com' => 'Site Name'],
    ],
],
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы