Содержание
- Почта в Laravel
- Шаги
- Найдите поставщика почтовых услуг. В качестве тестового провайдера мы будем использовать Mailtrap.
- Создайте учетную запись, скопируйте и вставьте конфигурацию для Laravel в файл .env.
- Создайте новый проект laravel
- Создайте доступный класс.
- Класс mail можно найти по адресу /app/Mail/SimpleMail.php. Скопируйте этот блок кода и замените его своим.
- Создайте контроллер для класса mailable
- Созданный контроллер можно найти по адресу app/Http/Controllers/SimpleMailController.php, замените этот код на свой.
- Создайте представление для класса mailable.
- Перейдите в папку ресурсов и создайте папку mail, затем создайте файл-лезвие simplemail внутри папки mail. Путь к файлу должен выглядеть следующим образом resourcesmailsimplemail.blade.php. Затем вставьте этот код в файл simplemail.blade.php.
- Создайте маршрут для отправки почты.
- Предварительный просмотр
- Теперь запустите сервер
- Затем перейдите по адресу http://127.0.0.1:8000/sendmail.
- В почтовом ящике (Mailtrap)
Почта в Laravel
Laravel сделал отправку почты простой, чистой, быстрой и надежной, предоставив простой компонент API электронной почты с использованием таких драйверов, как SMTP, Mailgun, Postmark и т.д. Электронная почта может быть отправлена через облачный или локальный сервис. Давайте настроим простую почту локально с помощью laravel.
Шаги
Найдите поставщика почтовых услуг. В качестве тестового провайдера мы будем использовать Mailtrap.
Создайте учетную запись, скопируйте и вставьте конфигурацию для Laravel в файл .env
.
Вы можете пропустить этот пункт, если у вас уже есть почтовый провайдер.
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=//username
MAIL_PASSWORD=//password
MAIL_ENCRYPTION=tls
Создайте новый проект laravel
composer create-project laravel/laravel laravelmail
Создайте доступный класс.
php artisan make:mail SimpleMail
Класс mail можно найти по адресу /app/Mail/SimpleMail.php
. Скопируйте этот блок кода и замените его своим.
<?php
namespace AppMail;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
class SimpleMail 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->from(config('MAIL_USERNAME'))
->view('mail.simplemail');
}
}
Создайте контроллер для класса mailable
php artisan make:controller SimpleMailController
Созданный контроллер можно найти по адресу app/Http/Controllers/SimpleMailController.php
, замените этот код на свой.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Mail;
class SimpleMailController extends Controller
{
public function index() {
$passingDataToView = 'Simple Mail Send In Laravel!';
$data["email"] = 'test@mail.com';
$data["title"] = "Mail Testing";
Mail::send('mail.simplemail', ['passingDataToView'=> $passingDataToView], function ($message) use ($data){
$message->to($data["email"],'John Doe');
$message->subject($data["title"]);
});;
return 'Mail Sent';
}
}
Создайте представление для класса mailable.
Перейдите в папку ресурсов и создайте папку mail
, затем создайте файл-лезвие simplemail
внутри папки mail
. Путь к файлу должен выглядеть следующим образом resourcesmailsimplemail.blade.php
. Затем вставьте этот код в файл simplemail.blade.php
.
<div style="background-color: white;border: 2px solid #0f0870;box-shadow: 20px -13px 1px 1px #0f0870;
width: fit-content;padding: 1rem 1rem;font-family: system-ui;">
<h4 style="text-align: center; font-size: large;"> {{ $passingDataToView }}</h4>
<h4 style="font-size: medium"> This is a custom mail</h4>
<p style="font-size: medium">
Laravel provides flexiblity for you to design your mail format to your liking
</p>
<p style="font-size: medium">
Enjoy and explore the world of infinite possibilities
</p>
<small>Thanks for checking this tutorial out.</small>
<p style="display:flex;justify-content: center;align-items: center;">
<a style="padding: 1rem;background-color: #0f0870;
width: max-content;color: white;text-decoration: none;"
href="https://medium.com/@manu_tech">
Custom Button
</a>
</p>
</div>
Создайте маршрут для отправки почты.
<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersSimpleMailController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('sendmail', [SimpleMailController::class, 'index']);
Предварительный просмотр
Теперь запустите сервер
php artisan serve
Затем перейдите по адресу http://127.0.0.1:8000/sendmail
.
В почтовом ящике (Mailtrap)