Отправка писем с уценкой в ​​Laravel: методы и примеры кода

Чтобы отправлять электронные письма в формате Markdown с помощью встроенных функций электронной почты Laravel, вы можете использовать следующие методы:

Метод 1: использование почтовых классов

  1. Создайте новый класс Mailable, выполнив в терминале следующую команду:

    php artisan make:mail MarkdownMail
  2. Откройте сгенерированный класс MarkdownMail(app/Mail/MarkdownMail.php) и обновите его, используя следующий код:

    <?php
    namespace App\Mail;
    use Illuminate\Bus\Queueable;
    use Illuminate\Contracts\Queue\ShouldQueue;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    class MarkdownMail extends Mailable
    {
       use Queueable, SerializesModels;
       /
        * Build the message.
        *
        * @return $this
        */
       public function build()
       {
           return $this->markdown('emails.markdownmail')
                       ->subject('Welcome to our website');
       }
    }
  3. Создайте новый файл шаблона Markdown по адресу resources/views/emails/markdownmail.blade.phpи добавьте в него свой контент Markdown:

    @component('mail::message')
    # Welcome to our website
    Hello,  
    Welcome to our website. We are glad to have you on board.
    Regards,  
    The Website Team
    @endcomponent
  4. Чтобы отправить электронное письмо, используйте следующий код:

    use App\Mail\MarkdownMail;
    use Illuminate\Support\Facades\Mail;
    // Inside a controller or wherever you want to send the email
    $email = new MarkdownMail();
    Mail::to('recipient@example.com')->send($email);

Метод 2: встроенный контент уценки

  1. Чтобы отправить электронное письмо со встроенным содержимым Markdown, вы можете использовать метод markdownнепосредственно на фасаде Mail. Вот пример:
    use Illuminate\Support\Facades\Mail;
    $content = "
    # Welcome to our website
    Hello,  
    Welcome to our website. We are glad to have you on board.
    Regards,  
    The Website Team
    ";
    Mail::raw($content, function ($message) {
       $message->to('recipient@example.com')
               ->subject('Welcome to our website');
    });