Від автора: в Laravel відправка пошти відбувається з використанням безкоштовної багатофункціональної бібліотеки SwiftMailer . З допомогою функцій цієї бібліотеки, ми можемо без проблем відправляти електронні листи. Шаблони електронної пошти завантажуються так само, як і уявлення, це означає, що ви можете використовувати синтаксис Blade і вводити в свої шаблони дані. Нижче наведено синтаксис функції send.
У третьому аргументі завершення $callback отримує примірник електронного листа, і з допомогою цього примірника ми також можемо викликати наступні функції і змінювати електронний лист, як показано нижче.
$message->subject(‘Welcome to the Tutorials Point’);
$message->from(’[email protected]’, ‘Mr. Example’);
$message->to(’[email protected]’, ‘Mr. Example’);
Також використовуються інші менш поширені методи:
$message->sender(’[email protected]’, ‘Mr. Example’);
$message->returnPath(’[email protected]’);
$message->cc(’[email protected]’, ‘Mr. Example’);
$message->bcc(’[email protected]’, ‘Mr. Example’);
$message->replyTo(’[email protected]’, ‘Mr. Example’);
$message->priority(2);
Для прикріплення або вбудовування файлів, ви можете використовувати наступні методи:
$message->attach(‘path/to/attachment.txt’);
$message->embed(‘path/to/attachment.jpg’);
Електронний лист може бути надіслано у форматі HTML або звичайний текст. Ви можете вказати тип письма у першому аргументі, передавши через нього масив, як показано нижче. Тип за умовчанням — HTML. Якщо ви хочете відправити звичайне текстове лист, використовуйте наступний синтаксис.
Mail: send([‘text’=>’text.view’], $data, $callback);
Тут перший аргумент приймає масив. Використовуйте «text» в якості ключа, а ім’я подання «name of the view» в якості значення ключа.
Приклад
Крок 1 — Тепер ми відправимо електронний лист через обліковий запис Gmail. Для цього вам потрібно налаштувати обліковий запис Gmail в файлі середовища Laravel .env . Увімкніть двоетапну перевірку свого облікового запису Gmail і створіть спеціальний пароль додатки, а потім змініть параметри .env, як показано нижче.
MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls
Крок 2. Після зміни файлу .env виконайте наступні дві команди, щоб очистити кеш і перезапустити сервер Laravel.
php artisan config:cache
Крок 3 — Створіть контролер з ім’ям MailController, виконавши наступну команду.
php artisan make:controller MailController –plain
Крок 4 – В результаті ви отримаєте наступне:
Крок 5 — Скопіювати в файл app/Http/Controllers/MailController.php наступний код.
“Virat Gandhi”);
Mail: send([‘text’=>’mail’], $data, function($message) {
$message->to(‘[email protected]’, ‘Tutorials Point’)->subject
(‘Laravel Basic Testing Mail’);
$message->from(‘[email protected]’,’Virat Gandhi’);
});
echo “Basic Email Sent. Check your inbox.”;
}
public function html_email(){
$data = array(‘name’=>”Virat Gandhi”);
Mail: send(‘mail’, $data, function($message) {
$message->to(‘[email protected]’, ‘Tutorials Point’)->subject
(‘Laravel HTML Testing Mail’);
$message->from(‘[email protected]’,’Virat Gandhi’);
});
echo “HTML Email Sent. Check your inbox.”;
}
public function attachment_email(){
$data = array(‘name’=>”Virat Gandhi”);
Mail: send(‘mail’, $data, function($message) {
$message->to(‘[email protected]’, ‘Tutorials Point’)->subject
(‘Laravel Testing Mail with Attachment’);
$message->attach(‘C:\laravel-master\laravel\public\uploads\image.png’);
$message->attach(‘C:\laravel-master\laravel\public\uploads\test.txt’);
$message->from(‘[email protected]’,’Virat Gandhi’);
});
echo “Email Sent with attachment. Check your inbox.”;
}
}
Крок 6 — Скопіювати в файл resources/views/mail.blade.php наступний код.
Hi, {{ $name }}
Sending Mail from Laravel.
Крок 7 — Додайте в файл app/Http/routes.php наступні рядки.
Route::get(‘sendbasicemail’,’MailController@basic_email’);
Route::get(‘sendhtmlemail’,’MailController@html_email’);
Route::get(‘sendattachmentemail’,’MailController@attachment_email’);
Крок 8 – Перейдіть за наступним URL-адресою, щоб перевірити роботу функції відправки електронної пошти. http://localhost:8000/sendbasicemail
Крок 9 – Ви повинні побачити на екрані наступне. Перевірте свою електронну скриньку, щоб побачити, як буде виглядати відправлений лист.
Крок 10 – Перейдіть за наступним URL-адресою, щоб перевірити функцію відправки HTML-листи. http://localhost:8000/sendhtmlemail
Крок 11 – Ви повинні побачити на екрані приблизно наступне. Перевірте свою поштову скриньку, щоб побачити, як буде виглядати HTML-лист.
Крок 12 –Перейдіть за наступним URL-адресою, щоб перевірити функцію відправки електронного листа з вкладенням http://localhost:8000/sendattachmentemail
Крок 13 – Ви повинні побачити на екрані приблизно наступне. Перевірте свою поштову скриньку, щоб побачити, як буде виглядати електронний лист з вкладенням.
Примітка. У файлі MailController.php «email address» в методі from замініть на адресу електронної пошти, з якого ви можете відправляти електронні листи. Як правило, це адреса електронної пошти, налаштований на вашому сервері.