Lumen. Добавление Mail от Laravel для работы с почтой


В данной публикации будет описан процесс добавления Laravel Illuminate Mail расширения в фреймворк Lumen.
И будет описан процесс отправки email сообщения.

Используя Lumen Framework в своем проекте мне была необходима реализация отправки email сообщений, но увы стандартные возможности Lumen не позволяли этого сделать.
Для этого мне пришлось добавить vendor расширение от Laravel в свой проект.

  1. Процесс добавления Illuminate Mail расширения в проект:
    Для добавления расширения необходимо перейти в корень проекта и выполнить команду в терминале:
    composer require illuminate/mail

    Откройте и отредактируйте файл bootstrap/app.php
    • Найдите и раскомментируйте строку:
      $app->withFacades();

    • Найдите строку
      // $app->register(App\Providers\EventServiceProvider::class);

    • Добавьте после нее:
      $app->register(\Illuminate\Mail\MailServiceProvider::class);


  2. Добавьте пакет для возвращения стандартной каскадной системы конфигурации Cascading Config.
    • Перейдите в корень проекта и добавьте расширение с помощью composer, выполнив данную команду в терминале:
      composer require phanan/cascading-config

    • Откройте и отредактируйте файл bootstrap/app.php
      • Найдите строку
        // $app->register(App\Providers\EventServiceProvider::class);

      • Добавьте после нее:
        $app->register(PhanAn\CascadingConfig\CascadingConfigServiceProvider::class);
        $app->configure('mail');
  3. Откройте и отредактируйте файл .env в корне проекта.
    Добавьте и отредактируйте строки в соответствии с настройками вашего почтового сервера:
    MAIL_DRIVER=[Драйвер почтового сервера]
    MAIL_HOST=[Хост почтового сервера]
    MAIL_PORT=[Порт]
    MAIL_USERNAME=[Имя пользователя почтового сервера]
    MAIL_PASSWORD=[Пароль]
    MAIL_ENCRYPTION=[Шифрование]

  4. Создайте контроллер и добавьте в него экшен sendAction
    Пример:

  5. Добавьте код для отправки Mail в sendAction.

    Вместо test@example.ru и send@example.ru адреса укажите свой адрес получателя и отправителя.

  6. Откройте файл routes/web.php и добавьте роут:
    $router->get('send', [
        'as' =>'send', 'uses' =>'MailController@sendAction'
    ]);

  7. Теперь откройте адрес вашего проекта в браузере и перейдите по url - /send
    После чего ваш проект на Lumen должен отправить email сообщение по указанному адресу.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.