Отправка писем через 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, куда придёт тестовое письмо.  Суть настройки в том, чтобы:

  1. Выставить адрес почтового сервера smtp.yandex.ru
  2. Выбрать 465 порт для соединения.
  3. Выставить тип защиты соединения - SSL.

Запускаем скрипт и убеждаемся, что всё работает!