swiftmailer yii2 ошибка при попытке отправить почту

96
12 октября 2021, 18:00

Что делаю не так? Копирую с mailtrap.io конфигурацию для yii


    'components' => [
        .....
        'mail' => [
            'class' => 'yii\swiftmailer\Mailer',
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.mailtrap.io',
                'username' => 'uname',
                'password' => 'upass',
                'port' => '587',
                'encryption' => 'tls',
            ],
        ],
    ],

далее в контролере

$this->mailer->compose()
            ->setFrom('from@yiisoft.local')
            ->setTo('myemail@mail.ru')
            ->setSubject('Email sent from Yii2-Swiftmailer')
            ->send();

и при попытке выполнить получаю

Swift_TransportException
Expected response code 220 but got an empty response

Не могу понять в чем причина.

PS: Проект развернут локально.

PSPS: На всякий случай добавлю сюда composer.json, т.к. использую только ядро yii. Может что доустановить нужно?

{
    "require": {
        "yiisoft/yii2": "^2.0",
        "vkcom/vk-php-sdk": "5.95.0",
        "yiisoft/yii2-swiftmailer": "^2.1"
    },
    "require-dev": {
        "phpunit/phpunit": "4.8.28"
    }
}
Answer 1

В общем проблема из за некорректной инъекции в конструктор контроллера, т.е. делал так:

__construct(..., Mailer $mailer, ..., ...)

При этом его конфиги прописывал в файле config/web.php в секции components. Сделал так:

Yii::$app->mailer->compose(...

и все заработало

READ ALSO
Sublime Text 3 подсветка html и php

Sublime Text 3 подсветка html и php

Я хочу, чтобы в sublime text 3 у меня была подсветка всех тегов html и phpУ меня не подсвечиваются <!doctype html>, а также <?php >

246
Как преобразовать дату из строки в timestamp?

Как преобразовать дату из строки в timestamp?

Есть массив таких строк: 10 янв 2016 04 фев 2017 15 апр 2017

93
Как сделать код проще

Как сделать код проще

Есть текстовый файлик

149