Tim-A-2020
@Tim-A-2020

Как вынести настройки Swiftmailer из конфига?

Доброго времени суток. Мне нужно реализовать свой класс для отправки почты. Возможно ли вынести эти настройки и менять их динамически?
'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => '',
                'port' => '',
                'username' => ' ',
                'password' =>  '',
                'encryption' => 'ssl',
            ],
  • Вопрос задан
  • 84 просмотра
Решения вопроса 2
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
Выносишь конфиг в отдельный файл куда тебе нужно:
<?php
return [
    'support' => [
        'class' => 'yii\swiftmailer\Mailer',
        'useFileTransport' => false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'mailmail.ru',
            'username' => 'support@mail.ru',
            'password' => 'c',
            'port' => '465',
            'encryption' => 'ssl',
        ],
    ],
    'noReply' => [
        'class' => 'yii\swiftmailer\Mailer',
        'useFileTransport' => false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => 'mail.mail.ru',
            'username' => 'noreply@mail.ru',
            'password' => '',
            'port' => '465',
            'encryption' => 'ssl',
        ],
    ],
];


И в web.php
$mailers = require __DIR__ . '/../components/mailer/config.php';
'components'=> [
    ...
    'supportMailer' => $mailers['support'],
    'noreplyMailer' => $mailers['noReply'],
    ...
]


Вызываешь:
Yii::$app=>supportMailer ...
Yii::$app=>noreplyMailer...
Ответ написан
Комментировать
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Можете использовать готовый модуль или по примеру сделать свой.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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