Как отправить почту laravel

Узнайте как отправлять почту из приложения Laravel с помощью элементарного примера. Мы расскажем о настройке сервера SMTP, о подключении почтового клиента и о процессе отправки сообщений.

Для отправки почты в Laravel есть компонент SwiftMailer, который может быть использован для отправки почты через сеть SMTP. Для установки и настройки почтового клиента необходимо прописать следующие настройки в файле конфигурации config/mail.php.


'mail' => [
    'driver' => 'smtp',
    'host' => 'smtp.example.com',
    'port' => 587,
    'from' => [
        'address' => 'from@example.com',
        'name' => 'Example',
    ],
    'encryption' => 'tls',
    'username' => 'username',
    'password' => 'password',
    'sendmail' => '/usr/sbin/sendmail -bs',
],

После правильной настройки почтового клиента, вы можете отправить почту с помощью метода mail() класса Mail, который доступен из файла app/Mail/Mail.php. Пример простой реализации отправки почты в Laravel выглядит следующим образом:


<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppMailWelcomeMail;
use IlluminateSupportFacadesMail;

class WelcomeController extends Controller
{
   public function sendEmail()
   {
       $details = [
            'title' => 'Mail from Laravel App',
            'body' => 'This is for testing email using smtp'
        ];

        Mail::to('test@example.com')->send(new WelcomeMail($details));

        return view('email.sent');
   }
}

WelcomeMail - почтовый класс, который мы создадим в папке app/Mail, представляет собой простой класс PHP, который использует шаблон Blade для отправки почты. Вот пример такого почтового класса:


<?php

namespace AppMail;

use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;

class WelcomeMail 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->view('view.name');
    }
}

После создания этого класса вы можете перейти в папку resources/views и создать шаблон почты, который вы хотите использовать для отправки почты. Вот пример такого шаблона:


<!DOCTYPE html>
<html>
<head>
    <title>{{ $details['title'] }}</title>
</head>
<body>
    <h1>Welcome</h1>
    <p>{{ $details['body'] }}</p>
</body>
</html>

Этот шаблон будет использоваться для отправки почты. Вы можете использовать различные виды почты, например, HTML, текстовую почту, почту с прикрепленными файлами, почту с прикрепленными изображениями и многое другое. Вы можете настроить почту для отправки в соответствии с вашими потребностями. Для отправки почты используйте команду php artisan mail:send, которая будет отправлять почту без отладки. Для отладки почты используйте команду php artisan mail:debug, которая будет отображать полное содержимое отправленной почты в консоли. Это поможет вам увидеть точно, как почта будет выглядеть после отправки.

В заключение можно сказать, что отправка почты в Laravel довольно проста и понятна. Вам просто нужно настроить почтовый клиент, а затем использовать метод mail() для отправки почты. Вы также можете использовать методы send() или queue(), для отправки почты в очереди. Это поможет вам предотвратить задержки при отправке почты.

Ответы (0)