@dud0ser

Не получается отправить письмо в yii2 в чем проблема?

Я только изучил Yii2 и пишу магазин, при оформлении заказа должно отправляться на почту юзера то что он заказал, но у меня почему-то не получается отправить письмо. самое не понятное для меня то что при разработке при включенном 'useFileTransport' => true, создается папка mail да и само письмо. но как только я ставлю 'useFileTransport' => false, то вылазит такая вот ошибка: Swift_TransportException
вот логи :
20:58:20.634 error Swift_TransportException exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.ukr.net [������ ��������� ���������� ��� ����������, �.�. �� ������� �������� �� ��������� ���� �� ������ ����� ������, ��� ��� ��������� ��� ������������� ���������� ��-�� ��������� ������� ��� ����������� ��������.
#10060]' in C:\OpenServer\domains\shop\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php:268
Stack trace:
#0 C:\OpenServer\domains\shop\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php(62): Swift_Transport_StreamBuffer->_establishSocketConnection()
#1 C:\OpenServer\domains\shop\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(113): Swift_Transport_StreamBuffer->initialize(Array)
#2 C:\OpenServer\domains\shop\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start()
#3 C:\OpenServer\domains\shop\vendor\yiisoft\yii2-swiftmailer\Mailer.php(146): Swift_Mailer->send(Object(Swift_Message))
#4 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\mail\BaseMailer.php(262): yii\swiftmailer\Mailer->sendMessage(Object(yii\swiftmailer\Message))
#5 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\mail\BaseMessage.php(48): yii\mail\BaseMailer->send(Object(yii\swiftmailer\Message))
#6 C:\OpenServer\domains\shop\controllers\CartController.php(74): yii\mail\BaseMessage->send()
#7 [internal function]: app\controllers\CartController->actionView()
#8 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array(Array, Array)
#9 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\base\Controller.php(156): yii\base\InlineAction->runWithParams(Array)
#10 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\base\Module.php(523): yii\base\Controller->runAction('view', Array)
#11 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module->runAction('cart/view', Array)
#12 C:\OpenServer\domains\shop\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))
#13 C:\OpenServer\domains\shop\web\index.php(13): yii\base\Application->run()
#14 {main}


вот код в config/web.php :
'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.ukr.net',
                'username' => 'vlad_babin_2013',
                'password' => '*******',
                'port' => '993',
                'encryption' => 'ssl',
            ],
        ],

вот код в контроллере:
Yii::$app->mailer->compose('order', ['session' => $session])
				->setFrom('vlad_babin_2013@ukr.net')
				->setTo($order->email)
				->setSubject('Заказ')
				->send();

я уже использовал и gmail.com и mail.ru
что делать? я не понимаю в чем ошибка.
  • Вопрос задан
  • 2006 просмотров
Решения вопроса 1
@dud0ser Автор вопроса
Разобрался сам.
в config/web.php
'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.ukr.net',
               <b> 'username' => 'vlad_babin_2013@ukr.net',</b>
                'password' => '******************',
                'port' => '465',
                'encryption' => 'ssl',
            ],

именно поле username нужно указывать на просто (в моем случае) vlad_babin_2013
а нужно указывать полный адрес! (в моем случае) vlad_babin_2013@ukr.net
а в документации да и везде в инете пишут что нужно без @ukr.net, но так у меня не работало (пробовал и mail.ru и gmail.com)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Доброй ночи.
Попробуйте так:
'port' => '465',
 // 'encryption' => 'ssl',
// или замените на
'encryption' => 'tls',
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы