ارسال ایمیل در لاراول (نسخه 7 و جدیدتر)

رتبه: 0 ار 0 رای sssss
لاراول ایمیل
نویسنده: میلاد حیدری زمان مطالعه 3 دقیقه
Banner Image

در این آموزش نحوه ارسال ایمیل از برنامه لاراول( Laravel) را با استفاده از سرور Mailtrap SMTP توضیح می دهیم. به طور کلی فرایند کار کلاس Mailable را بررسی می کنیم و جنبه های ضروری ارسال ایمیل ایمن، سریع و کارآمد را معرفی خواهیم کرد.

ارسال ایمیل ساده در لاراول 8 با Mailable

ایمیل ارسال شده از برنامه لاراول یک کلاس Mailable را نشان می دهد. هر کلاس Mailable در پوشه app/Mail قرار گرفته است.

دستور

php artisan make:mail your_class_name

کلاس Mailable را فرم می دهد، همچنین الگوی ایمیل blade در view ایجاد می کند که نمایش ارسال کننده ایمیل را مدیریت می کند.

Mailtrap چیست؟

Mailtrap یک ابزار سنتی است و به طور کلی از آن به عنوان یک سرور جعلی SMPT (مخفف ” Simple Mail Transfer Protocol ” به معنای پروتکل انتقال ایمیل ساده) استفاده می شود. توسعه دهندگان وب و تیم های توسعه نرم افزار از آن برای ارسال، تست، مشاهده و اشتراک گذاری ایمیل هایی استفاده می کنند که احتمالاً از یک محیط استقرار بدون شبیه سازی اسپم ارسال می شوند.

مراحل کار برای ارسال ایمیل در لاراول

ارسال ایمیل از لاراول در محیط لوکال هاست (localhost) با اجرای مراحل زیر توسط توسعه دهندگان مب تواند شبیه سازی شود:

1- یک پروژه لاراول بسازید.

2- یک حساب Mailtrap برای مدیریت درخواست های محیط لوکال ایجاد کنید.

3- جزئیات Mailtrap را در یک فایل با پسوند .env با هم یکی کنید.

4- یک کلاس Mailable در لاراول تنظیم کنید.

5-یک کنترلر ایمیل ایجاد کنید، منطق ارسال ایمیل را بنویسید.

6- یک مسیر ایجاد کنید، کنترل کننده ایمیل را به آن وصل کنید.

7- یک قالب ارسال کننده ایمیل در view بسازید.

8- سرور توسعه خود را راه اندازی کرده و ایمیل های آزمایشی را ارسال کنید.

ایجاد پروژه لاراول

پروژه جدید لاراول را با اجرای دستور زیر نصب کنید.

composer create-project laravel/laravel –prefer-dist laravel-send-email

با دستور زیر به داخل دایرکتوری پروژه جدید ساخته شده بروید:

cd laravel-send-email

تنظیم پیکربندی Mailtrap Mail

ابتدا باید یک حساب Mailtrap ایجاد کنید. این برنامه ایمیل های ارسال شده از محیط توسعه را تست می کند، اسپم ها را مهار می کند و امکان تست ایمیل های ارسال شده از برنامه لاراول را به راحتی فراهم می کند.

به داشبورد mailtrap بروید، روی نماد چرخ دنده کوچک کلیک کنید. نام کاربری و رمز عبور را از تب SMTP Settings کپی کنید.

پس از ساخت حساب، فایل .env را باز کرده و پیکربندی mailtrap را به صورت زیر وارد کنید.

MAIL_MAILER=smtp

MAIL_HOST=smtp.mailtrap.io

MAIL_PORT=2525

MAIL_USERNAME= // mailtrap نام کاربری

MAIL_PASSWORD= // mailtrap رمز عبور

MAIL_ENCRYPTION=tls

MAIL_FROM_ADDRESS= // ایمیل از آدرس

جزئیات مربوط و خاص برای استفاده از Gmail یا آدرس ایمیل سفارشی را اضافه کنید.

ایجاد کلاس Markdown Mailable

از لحاظ تئوری، کلاس mailable در لاراول برای ساخت ایمیل استفاده می شود. داده ها را جمع آوری کرده و داده ها را به view می فرستد. راه اندازی API ایمیل بدون شک ساده و سرراست است.

دستور artisan را برای ایجاد یک mailable جدید اجرا کنید:

php artisan make:mail EmailDemo –markdown=Email.demoEmail

دستور artisan بالا فایل app/Mail/EmailDemo.php را ایجاد می کند. داده ها را به view می فرستیم که باید ایمیل را ارسال کند.

<?php

namespace AppMail;

use IlluminateBusQueueable;

use IlluminateContractsQueueShouldQueue;

use IlluminateMailMailable;

use IlluminateQueueSerializesModels;

class EmailDemo extends Mailable

{

use Queueable, SerializesModels;

public $mailData;

/**

* Create a new message instance.

*

* @return void

*/

public function __construct($mailData)

{

$this->mailData = $mailData;

}

/**

* Build the message.

*

* @return $this

*/

public function build()

{

return $this->markdown(‘Email.demoEmail’)

->with(‘mailData’, $this->mailData);

}

}

قالب Email.demoEmail توسط دستور mailable ایجاد شده است و متغیر mailData داده هایی را نگه می دارد که در مرحله بعد تعریف می شوند.

ایجاد کنترلر برای ایمیل و ارسال

دستور زیر را برای ایجاد یک کنترلر جدید اجرا کنید، در اصل منطق نمایش لیست کاربران را تعریف می کنیم. دستور را اجرا کنید تا کنترلر ساخته شود.

php artisan make:controller MailController

فایل app/Http/Controllers/MailController.php را باز کرده و کد زیر را در آن قرار دهید.

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use IlluminateSupportFacadesMail;

use AppMailEmailDemo;

use SymfonyComponentHttpFoundationResponse;

class MailController extends Controller {

public function sendEmail() {

$email = ‘positronx@gmail.com’;

$mailData = [

‘title’ => ‘Demo Email’,

‘url’ => ‘https://www.positronx.io’

];

Mail::to($email)->send(new EmailDemo($mailData));

return response()->json([

‘message’ => ‘Email has been sent.’

], Response::HTTP_OK);

}

}

کلاس EmailDemo Mailable و همچنین Mail Facade و سرویس Http Response را وارد کنید. در شروع منطق اصلی را می نویسیم که امکان ارسال ایمیل را از برنامه لاراول فراهم می کند.

پس از ارسال موفقیت آمیز ایمیل باید یک پاسخ مناسب به کاربر نشان داده شود، با API HttpFoundation/Response این کار انجام می شود.

ایجاد مسیر برای ارسال ایمیل

در این مرحله یک مسیر می سازیم و یک توافق بین کنترلر ایمیل و تابع sendEmail ایجاد می کنیم.

فایل routes/web.php را باز کرده و کد زیر را وارد کنید.

<?php

use IlluminateSupportFacadesRoute;

use AppHttpControllersMailController;

/*

|————————————————————————–

| Web Routes

|————————————————————————–

|

*/

Route::get(‘/send-email’, [MailController::class, ‘sendEmail’]);

ایجاد قالب ایمیل

تقریباً همه عناصر مورد نیاز را پیکربندی کردیم. حالا زمان آن رسیده است که view برای الگوی ایمیل را برای ارسال ایمیل ها می تنظیم کنیم. به یاد داشته باشید کلاس mailable را ایجاد کرده ایم و آن نیز view را ایجاد کرده است.

فایل resources/views/Email/demoEmail.blade.php را باز کنید و کد زیر را در آن قرار دهید.

@component(‘mail::message’)

# {{ $mailData[‘title’] }}

The body of your message.

@component(‘mail::button’, [‘url’ => $mailData[‘url’]])

Button Text

@endcomponent

Thanks,<br>

{{ config(‘app.name’) }}

@endcomponent

حتما دانلود کنید: آموزش صفر تا صد لاراول (رایگان)

ارسال ایمیل در لاراول

برای ارسال ایمیل روی mailtrap از طریق لاراول، دستور زیر را اجرا کنید.

php artisan serve

می توانید ایمیل را از طریق مسیر زیر ارسال کنید.

http://localhost:8000/send-email

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

کلاس های آنلاین مرتبط

مشاهده همه
سایر مقالات آموزشی
سایر مقالات آموزشی

مدرس : حامد رضوانی

0

*برای مشاهده قیمت کلاس روی رزرو کلاس آنلاین کلیک کنید*

رزرو کلاس آنلاین

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «ارسال ایمیل در لاراول (نسخه 7 و جدیدتر)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید