Sendgrid — очень удобный сервис по отправке транзакционных писем с обширной аналитикой и отчетами по доставленным письмам. Сервис также очень удобен для обхода спам фильтров ваших писем, используя Sendgrid вы можете быть уверены что письмо будет доставлено и прочитано адресатом.
Хотя API очень прост и удобен, мы все же воспользуемся готовым расширением wadeshuler/yii2-sendgrid
Шаг 1. Установим расширение в свой проект
composer require wadeshuler/yii2-sendgrid
Шаг 2. Пропишем наше расширение в конфигурации mailer:
'mailer' => [ 'class' => 'wadeshuler\sendgrid\Mailer', 'useFileTransport' => false, 'apiKey' => 'Ключ Sendgrid API нужно получить на sendgrid.com', ],
Шаг 3. Попробуем отправить письмо:
$message = Yii::$app->mailer->compose() ->setTo(["[email protected]"]) ->setFrom(['[email protected]' => 'My service notifications']) ->setSubject('Welcome to our fancy service') ->setHtmlBody('Some html messsage here') ->setTextBody('Some text messsage here') ->send();
Для проверки статуса письма достаточно проверить переменную $message на True.
Кроме настроек выше вы также можете добавлять дополнительные параметы в ваши письма такие как template id, headers и многое другое.
Статистику по отправленным и прочитанным письмам вы можете наблюдать в личном кабинете sendgrid. Хоть сервис и является платным вы можете отправлять до ста писем в сутки на бесплатном аккаунте.