Laravel — Отправка электронной почты

Laravel — Отправка электронной почты

От автора: в Laravel отправка почты происходит с использованием бесплатной многофункциональной библиотеки SwiftMailer . С помощью функций этой библиотеки, мы можем без проблем отправлять электронные письма. Шаблоны электронной почты загружаются так же, как и представления, это означает, что вы можете использовать синтаксис Blade и вводить в свои шаблоны данные. Ниже приведен синтаксис функции send.

Laravel — Отправка электронной почты

В третьем аргументе завершение $callback получает экземпляр электронного письма, и с помощью этого экземпляра мы также можем вызывать следующие функции и изменять электронное письмо, как показано ниже.

$message->subject(‘Welcome to the Tutorials Point’);

$message->from(‘email@example.com’, ‘Mr. Example’);

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее

$message->to(‘email@example.com’, ‘Mr. Example’);

Также используются другие менее распространенные методы:

$message->sender(‘email@example.com’, ‘Mr. Example’);

$message->returnPath(‘email@example.com’);

$message->cc(‘email@example.com’, ‘Mr. Example’);

$message->bcc(‘email@example.com’, ‘Mr. Example’);

$message->replyTo(‘email@example.com’, ‘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, как показано ниже.

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее
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 – В результате вы получите следующее:

Laravel — Отправка электронной почты

Шаг 5 — Скопируйте в файл app/Http/Controllers/MailController.php следующий код.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
 
use App\Http\Requests;
use App\Http\Controllers\Controller;
 
class MailController extends Controller {
  public function basic_email(){
 $data = array('name'=>"Virat Gandhi");
 
 Mail::send(['text'=>'mail'], $data, function($message) {
 $message->to('abc@gmail.com', 'Tutorials Point')->subject
 ('Laravel Basic Testing Mail');
 $message->from('xyz@gmail.com','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('abc@gmail.com', 'Tutorials Point')->subject
 ('Laravel HTML Testing Mail');
 $message->from('xyz@gmail.com','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('abc@gmail.com', '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('xyz@gmail.com','Virat Gandhi');
 });
 echo "Email Sent with attachment. Check your inbox.";
  }
}

Шаг 6 — Скопируйте в файл resources/views/mail.blade.php следующий код.

<h1>Hi, {{ $name }}</h1>
<p>Sending Mail from Laravel.</p>

Шаг 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 – Вы должны увидеть на экране следующее. Проверьте свой электронный ящик, чтобы увидеть как будет выглядеть отправленное письмо.

Laravel — Отправка электронной почты

Шаг 10 – Перейдите по следующему URL-адресу, чтобы проверить функцию отправки HTML-письма. http://localhost:8000/sendhtmlemail

Шаг 11 – Вы должны увидеть на экране примерно следующее. Проверьте свой почтовый ящик, чтобы увидеть как будет выглядеть HTML-письмо.

Laravel — Отправка электронной почты

Шаг 12 –Перейдите по следующему URL-адресу, чтобы проверить функцию отправки электронного письма с вложением http://localhost:8000/sendattachmentemail

Шаг 13 – Вы должны увидеть на экране примерно следующее. Проверьте свой почтовый ящик, чтобы увидеть как будет выглядеть электронное письмо с вложением.

Laravel — Отправка электронной почты

Примечание. В файле MailController.php «email address» в методе from замените на адрес электронной почты, с которого вы можете отправлять электронные письма. Как правило, это адрес электронной почты, настроенный на вашем сервере.

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк Laravel. Быстрая разработка с фреймворком №1

Узнай тонкости современной веб-разработки с помощью фреймворка Laravel

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк Laravel: теория и первая практика

Овладейте азами фреймворка Laravel!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree