yii2 Отправка почты SMTP (SwiftMailer)- как настроить, пример кода
Primary tabs
Будем настравить отправку почты (SMTP) через сервер яндекса.
Для этого регистрируем там аккаунт, запоминаем пароль (его придёт добавить в код).
В файл:
\common\config\main-local.php
Добавляем:
<?php return [ 'components' => [ /* ............... ............... . . .. ............................ */ 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.yandex.ru', 'username' => 'login @yandex.ru', 'password' => 'fdpass3Gd', 'port' => '465', 'encryption' => 'ssl', // у яндекса SSL ], 'useFileTransport' => false, // будем отправлять реальные сообщения, а не в файл ],
В том же месте кода, где хотим отправить сообщение пишем что-то вроде:
(пробелы перед "собакой" не нужны!)
Yii::$app->mailer->compose() ->setFrom('login @yandex.ru') ->setTo($emailAdress) // кому отправляем - реальный адрес куда придёт письмо формата asdf @asdf.com ->setSubject('Новая заявка на сайте Спецназ') // тема письма ->setTextBody("Поступило сообщение от [$ticket->name] (почта: [$ticket->email]). " . "Текст сообщения: [[$ticket->message]].") // текст письма без HTML ->setHtmlBody("<br><i>Поступило сообщение от</i> [$ticket->name] <i>(почта:</i> [$ticket->email]<i>)</i>. <br> " // текст с HTML . "<br><i>Текст сообщения:</i><br> [[$ticket->message]].") ->send();
Важно чтобы имя отправителя в файле настроек и в коде совпадали.
- Log in to post comments
- 11885 reads