Отправка писем через SMTP Яндекс почты с помощью Swift Mailer
2018-02-18 10:00:00
Swift Mailer - одна из самых популярных библиотек php для отправки писем. Она выигрывает как по производительности, так и по удобству использования.
Яндекс почта тоже набирает популярность в рунете. После того как Яндекс стал предоставлять бесплатный DNS сервер с автоматической настройкой MX записей на свою почту, количество пользователей их начало расти в геометрической прогрессии.
Передо мной встала задача настроить отправку почты с сайта через SMTP Яндекс почты. Почитав документацию и установив Swift Mailer я быстро добился результата. Поделюсь опытом и с вами.
Сперва установим библиотеку Swift Mailer через composer:
composer require "swiftmailer/swiftmailer:^6.0"
Для отладки создадим файл mail.php и добавим туда следующее содержимое:
require_once 'vendor/autoload.php';
$yandexSmtpHost = 'smtp.yandex.com';
$yandexEmail = 'Ваш E-mail в Яндексе';
$yandexPassword = 'Ваш пароль в Яндексе';
$yandexSmtpPort = 465;
$yandexEncryption = 'SSL';
$targetEmail = 'E-mail адрес, на который придёт тестовое письмо';
$transport = (new Swift_SmtpTransport($yandexSmtpHost, $yandexSmtpPort))
->setUsername($yandexEmail)
->setPassword($yandexPassword)
->setEncryption('SSL');
$mailer = new Swift_Mailer($transport);
$message = (new Swift_Message('Проверка отправки письма'))
->setFrom([$yandexEmail => 'Василий Пупкин'])
->setTo([$targetEmail])
->setBody('Здравствуйте. Это проверка отправки письма с помощью Swift Mailer');
$result = $mailer->send($message);
Подставьте свой E-mail и пароль о Яндекса. Также укажите целевой E-mail, куда придёт тестовое письмо. Суть настройки в том, чтобы:
- Выставить адрес почтового сервера smtp.yandex.ru
- Выбрать 465 порт для соединения.
- Выставить тип защиты соединения - SSL.
Запускаем скрипт и убеждаемся, что всё работает!