Tim-A-2020
@Tim-A-2020

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

Доброго времени суток. Мне нужно реализовать свой класс для отправки почты. Возможно ли вынести эти настройки и менять их динамически?
'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => '',
                'port' => '',
                'username' => ' ',
                'password' =>  '',
                'encryption' => 'ssl',
            ],
  • Вопрос задан
  • 64 просмотра
Решения вопроса 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...
Ответ написан
maksim92
@maksim92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Можете использовать готовый модуль или по примеру сделать свой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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