При каждом важном событии происходящем на торговой площадке (например покупка товара или отзыв) формируется почтовое уведомление, которое должно быть доставлено конечному пользователю. Уведомление сохраняется в таблице `message_queue` представляющей собой очередь из email сообщений, которые обрабатываются при помощи планировщика задач (cron).
Для отправки писем мы рекомендуем использовать внешний SMTP сервер. Внешний SMTP сервер может быть представлен вашим интернет-провайдером, хостинг-провайдером, различными почтовыми сервисами и т.п.
На сегодняшний день наиболее популярные почтовые сервисы, такие как Gmail, Yandex.mail и Mail предоставляют возможность отправки почтовых писем через свои службы. Ниже приведены примерные настройки этих сервисов.
Настройки производятся в конфигурационном файле /common/config/env.php
Пример настройки SMTP mail.ru
'mail' => [ 'class' => 'common.extensions.mail.YiiMail', 'viewPath' => 'frontend.views.mail', 'logging' => true, 'transportType' => 'smtp', 'transportOptions' => [ 'host' => 'ssl://smtp.mail.ru', 'username' => 'demo@molotoksoftware.com', 'password' => 'password', 'port' => '465', ], ],
Пример настройки SMTP gmail.com
При использовании сервисов от gmail.com, потребуется дополнительно разрешить отправку писем с неподтвержденных устройств (в настройках gmail).
'mail' => [ 'class' => 'common.extensions.mail.YiiMail', 'viewPath' => 'frontend.views.mail', 'logging' => true, 'transportType' => 'smtp', 'transportOptions' => [ 'host' => 'ssl://smtp.gmail.com', 'username' => 'user@gmail.com', 'password' => 'password', 'port' => '465', ], ],
Пример настройки SMTP yandex.ru
'mail' => [ 'class' => 'common.extensions.mail.YiiMail', 'viewPath' => 'frontend.views.mail', 'logging' => true, 'transportType' => 'smtp', 'transportOptions' => [ 'host' => 'ssl://smtp.yandex.ru', 'username' => 'user@yandex.ru', 'password' => 'password', 'port' => '465', ], ],
В случае крайней необходимости можно прибегнуть к отправке почты через SMTP собственного сервера либо функции php mail(). Необходимые параметры можно уточнить у хостера.
Примерные настройки через SMTP сервера
'mail' => [ 'class' => 'common.extensions.mail.YiiMail', 'viewPath' => 'frontend.views.mail', 'logging' => true, 'transportType' => 'smtp', 'transportOptions' => [ 'host' => 'localhost', 'username' => 'postmaster@domain.com', 'password' => 'password', 'port' => '25', ], ],
Примерные настройки через php mail()
'mail' => [ 'class' => 'common.extensions.mail.YiiMail', 'viewPath' => 'frontend.views.mail', 'logging' => true, 'transportType' => 'mail', ],