
پلتفرم Laravel
(Laravel Platform)ارسال ایمیل در لاراول ۱۰
برای استفاده از سرویس ایمیل در برنامههای Laravel باید پس از ایجاد سرویس ایمیل، اطلاعات دسترسی SMTP را طبق مستندات تنظیم متغیرها در تنظیمات برنامه اضافه کنید.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=my-app
MAIL_PASSWORD=87b9307a-dae9-410e-89a2-e77de60e4885
حال با تنظیم MAIL_ENCRYPTION=tlsمیتوانید بدون نگرانی در پروژهی خود با استفاده از دسترسی SMTP سرویس ایمیل لیارا بهصورت امن اقدام به ارسال ایمیلهای تراکنشی کنید.
ایجاد پروژهی لاراولی
ترمینال را باز کرده و با استفاده از دستور زیر یک پروژه لاراولی ایجاد کنید.
composer create-project --prefer-dist laravel/laravel blog
ایجاد کلاس Mailable
ترمینال را باز کرده و با استفاده از دستور زیر این کلاس را ایجاد کنید.
php artisan make:mail NotifyMail
هنگامی که کلاس notifyMail را ایجاد کردید، سپس به دایرکتوریapp/mail بروید و فایلnotifyMail.php را باز کنید و کد زیر را به آن اضافه کنید:
<?php
namespace AppMail;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateMailMailablesContent;
use IlluminateMailMailablesEnvelope;
use IlluminateQueueSerializesModels;
class NotifyMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*/
public function __construct()
{
//
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Notify Mail',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'view.name',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, IlluminateMailMailablesAttachment>
*/
public function attachments(): array
{
return [];
}
}
با هر نامی که می خواهید، یک الگوی ایمیل ایجاد کنید؛ که می خواهید بفرستید. برای مثال:
return new Content(
view: 'view.name',
);
به:
return new Content(
view: 'emails.demoMail',
);
در مرحله بعد، باید یک قالب ایمیل با نامdemoMail.blade.phpدر دایرکتوری resources/views/emailsایجاد کنید.
اضافه کردن Route
در این مرحله، /web.php را باز کنید، بنابراین به دایرکتوریroutesبروید. و سپس مسیرهای زیر را برای ارسال ایمیل اضافه کنید:
use App\Http\Controllers\SendEmailController;
Route::post('send-email', [SendEmailController::class, 'index']);
ایجاد یک دایرکتوری و blade view
در این مرحله، دایرکتوری بهنام email داخل دایرکتوریresources/views ایجاد کنید. سپس یک فایل بهنامdemoMail.blade.php در داخلresources/views/emails ایجاد کنید. و کد زیر را داخل آن وارد کنید.
<!DOCTYPE html>
<html>
<head>
<title>Laravel email example with Liara</title>
</head>
<body>
<h1>This is a test mail to see how Liara works.</h1>
<p>Laravel 10 send email example.</p>
</body>
</html>
ایجاد کنترلر ارسال ایمیل
ترمینال را باز کرده و با استفاده از دستور زیر کنترلر را ایجاد کنید.
php artisan make:controller SendEmailController
سپس به دایرکتوری app/Http/Controllers بروید وSendEmailController.php را باز کنید. سپس کد زیر را در داخل آن وارد کنید:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
use App\Mail\NotifyMail;
class SendEmailController extends Controller
{
public function index()
{
Mail::to('destination@gmail.com')->send(new NotifyMail());
return "Great! Your email has been sent successfully.";
}
}
برای اطلاعات بیشتر میتوانید به مستندات Laravel مراجعه کنید.
متوجه شدم، برو گام بعدی!