Отправка писем в Laravel 9

Содержание
  1. Почта в Laravel
  2. Шаги
  3. Найдите поставщика почтовых услуг. В качестве тестового провайдера мы будем использовать Mailtrap.
  4. Создайте учетную запись, скопируйте и вставьте конфигурацию для Laravel в файл .env.
  5. Создайте новый проект laravel
  6. Создайте доступный класс.
  7. Класс mail можно найти по адресу /app/Mail/SimpleMail.php. Скопируйте этот блок кода и замените его своим.
  8. Создайте контроллер для класса mailable
  9. Созданный контроллер можно найти по адресу app/Http/Controllers/SimpleMailController.php, замените этот код на свой.
  10. Создайте представление для класса mailable.
  11. Перейдите в папку ресурсов и создайте папку mail, затем создайте файл-лезвие simplemail внутри папки mail. Путь к файлу должен выглядеть следующим образом resourcesmailsimplemail.blade.php. Затем вставьте этот код в файл simplemail.blade.php.
  12. Создайте маршрут для отправки почты.
  13. Предварительный просмотр
  14. Теперь запустите сервер
  15. Затем перейдите по адресу http://127.0.0.1:8000/sendmail.
  16. В почтовом ящике (Mailtrap)

Почта в Laravel

Laravel сделал отправку почты простой, чистой, быстрой и надежной, предоставив простой компонент API электронной почты с использованием таких драйверов, как SMTP, Mailgun, Postmark и т.д. Электронная почта может быть отправлена через облачный или локальный сервис. Давайте настроим простую почту локально с помощью laravel.

Шаги

Найдите поставщика почтовых услуг. В качестве тестового провайдера мы будем использовать Mailtrap.

Создайте учетную запись, скопируйте и вставьте конфигурацию для Laravel в файл .env.

Вы можете пропустить этот пункт, если у вас уже есть почтовый провайдер.

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=//username
MAIL_PASSWORD=//password
MAIL_ENCRYPTION=tls
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Создайте новый проект laravel

composer create-project laravel/laravel laravelmail
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Создайте доступный класс.

php artisan make:mail SimpleMail
Войти в полноэкранный режим Выйдите из полноэкранного режима

Класс mail можно найти по адресу /app/Mail/SimpleMail.php. Скопируйте этот блок кода и замените его своим.

<?php
    namespace AppMail;
    use IlluminateBusQueueable;
    use IlluminateContractsQueueShouldQueue;
    use IlluminateMailMailable;
    use IlluminateQueueSerializesModels;

    class SimpleMail extends Mailable
    {
        use Queueable, SerializesModels;

        /**
        * Create a new message instance.
        *
        * @return void
        */
        public function __construct()
        {
            //
        }

        /**
        * Build the message.
        *
        * @return $this
        */
         public function build()
        {
            return $this->from(config('MAIL_USERNAME'))
            ->view('mail.simplemail');
        }
    }
Вход в полноэкранный режим Выход из полноэкранного режима

Создайте контроллер для класса mailable

php artisan make:controller SimpleMailController
Вход в полноэкранный режим Выйти из полноэкранного режима

Созданный контроллер можно найти по адресу app/Http/Controllers/SimpleMailController.php, замените этот код на свой.

<?php

    namespace AppHttpControllers;

    use IlluminateHttpRequest;
    use Mail;
    class SimpleMailController extends Controller
    {
        public function index() {
            $passingDataToView = 'Simple Mail Send In Laravel!';
            $data["email"] = 'test@mail.com';
            $data["title"] = "Mail Testing";

            Mail::send('mail.simplemail', ['passingDataToView'=> $passingDataToView], function ($message) use ($data){
                $message->to($data["email"],'John Doe');
                $message->subject($data["title"]);
            });;

            return 'Mail Sent';
        }
    }
Вход в полноэкранный режим Выход из полноэкранного режима

Создайте представление для класса mailable.

Перейдите в папку ресурсов и создайте папку mail, затем создайте файл-лезвие simplemail внутри папки mail. Путь к файлу должен выглядеть следующим образом resourcesmailsimplemail.blade.php. Затем вставьте этот код в файл simplemail.blade.php.

 <div style="background-color: white;border: 2px solid #0f0870;box-shadow: 20px -13px 1px 1px #0f0870;
        width: fit-content;padding: 1rem 1rem;font-family: system-ui;">
            <h4 style="text-align: center; font-size: large;"> {{ $passingDataToView }}</h4>
            <h4 style="font-size: medium"> This is a custom mail</h4>
            <p style="font-size: medium">
                Laravel provides flexiblity for you to design your mail format to your liking
            </p>
            <p style="font-size: medium">
                Enjoy and explore the world of infinite possibilities 
            </p>
            <small>Thanks for checking this tutorial out.</small>
            <p style="display:flex;justify-content: center;align-items: center;">
                <a style="padding: 1rem;background-color: #0f0870;
                    width: max-content;color: white;text-decoration: none;" 
                    href="https://medium.com/@manu_tech">
                    Custom Button
                </a>
            </p>
    </div>

Вход в полноэкранный режим Выход из полноэкранного режима

Создайте маршрут для отправки почты.

<?php

    use IlluminateSupportFacadesRoute;
    use AppHttpControllersSimpleMailController;
    /*
    |--------------------------------------------------------------------------
    | Web Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register web routes for your application. These
    | routes are loaded by the RouteServiceProvider within a group which
    | contains the "web" middleware group. Now create something great!
    |
    */

    Route::get('/', function () {
        return view('welcome');
    });

    Route::get('sendmail', [SimpleMailController::class, 'index']);

Войти в полноэкранный режим Выход из полноэкранного режима

Предварительный просмотр

Теперь запустите сервер

    php artisan serve
Войдите в полноэкранный режим Выйти из полноэкранного режима

Затем перейдите по адресу http://127.0.0.1:8000/sendmail.

В почтовом ящике (Mailtrap)

Оцените статью
devanswers.ru
Добавить комментарий