В Laravel 8 для отправки писем на почту можно использовать различные драйверы, включая smtp
, sendmail
, mailgun
, mandrill
и т.д. Однако, если вы хотите воспользоваться драйвером phpmail
, вам понадобится настроить его в конфигурационном файле Laravel и создать класс письма.
Вот пошаговая инструкция, как отправить письмо на почту через phpmail
в Laravel 8:
Шаг 1: Установите Laravel 8, если у вас его еще нет. Это можно сделать с помощью Composer командой:
composer create-project --prefer-dist laravel/laravel project-name
Шаг 2: Откройте файл .env
в корневой папке вашего проекта и установите следующие параметры для отправки почты через phpmail
:
MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}"
Шаг 3: Откройте файл config/mail.php
и найдите массив mailers
. Добавьте следующую конфигурацию:
'phpmail' => [ 'transport' => 'phpmail' ],
Шаг 4: Добавьте массив from
в массив config
, чтобы определить адрес и имя отправителя по умолчанию:
'from' => [ 'address' => env('MAIL_FROM_ADDRESS', '[email protected]'), 'name' => env('MAIL_FROM_NAME', 'Example'), ],
Шаг 5: Создайте класс письма, который будет отправлен в директории app/Mail
. Создайте новый файл TestMail.php
со следующим содержимым:
namespace AppMail; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateMailMailable; use IlluminateQueueSerializesModels; class TestMail 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('emails.test'); } }
Шаг 6: Создайте шаблон письма. Создайте новую папку emails
в директории resources/views
и добавьте файл test.blade.php
со следующим содержимым:
<!DOCTYPE html> <html> <head> <title>Test Email</title> </head> <body> <h1>Hello!</h1> <p>This is a test email sent using Laravel 8 with phpmail driver.</p> </body> </html>
Шаг 7: В контроллере или любом другом месте вашего приложения, откуда вы хотите отправить письмо, создайте экземпляр класса TestMail
и отправьте его:
use IlluminateSupportFacadesMail; use AppMailTestMail; ... public function sendEmail() { $details = [ 'title' => 'Test Email', 'body' => 'This is a test email sent using Laravel 8 with phpmail driver.' ]; Mail::to('[email protected]')->send(new TestMail($details)); return "Email sent successfully."; }
Теперь вы сможете отправить письмо на почту указанную в методе to()
. Письмо будет содержать шаблон, который вы создали в test.blade.php
.
Это основная инструкция, как отправить письмо на почту через phpmail
в Laravel 8. Вы можете настроить дополнительные параметры в .env файле для отправки через другие сервера почты или используя другие драйверы, как я упоминал ранее.