با عرض سلام خدمت کاربران عزیز سایت پی وی لرن و کاربرانی که دوره کامل آموزش لاراول را دنبال می کنند، با آموزش ارسال ایمیل در لاراول. لاراول از SwiftMailer کتابخانه ای با امکانات فراوان برای ارسال ایمیل استفاده می کند. با استفاده از تابع کتابخانه، ما به راحتی می توانیم بدون هیچ مشکلی بیش از حد ارسال ایمیل داشته باشیم. قالب های ایمیل به همان شکل نمایش داده می شوند که بدین معناست که شما می توانید از نحوۀ Blade استفاده کنید و داده ها را به قالب های خود تزریق کنید.
جدول زیر نحوه و ویژگی های عملکرد ارسال را نشان می دهد.
Syntax | void send(string|array $view, array $data, Closure|string $callback) |
مولفه ها |
|
بازگشت | هیچ |
شرح | ارسال ایمیل |
در استدلال سوم، با بسته شدن $callback یک نمونه پیام دریافت میکنید و با آن نمونه شما همچنین می توانید با توابع زیر تماس بگیرید.
و پیام را تغییر دهید که در زیر نشان داده شده است.
برخی از روش های رایج تر عبارتند از:
برای ضمیمه کردن یا جاسازی فایل ها، می توانید از روش های زیر استفاده کنید:
ایمیل را می توان به صورت HTML یا متن ارسال کرد.
شما می توانید از نوع پست الکترونیکی که می خواهید در اولین استدلال ارسال کنید، با ارسال یک آرایه که به صورت زیر نشان داده شده است.
نوع پیش فرض HTML است. اگر می خواهید ایمیل متن ساده ارسال کنید، از Syntax زیر استفاده کنید.
1 | Mail::send([‘text’=>’text.view’], $data, $callback); |
در این syntax، اولین آرایه یک آرایه را می گیرد. استفاده از متن به عنوان کلید و عنوان نمایش به عنوان مقدار کلید میباشد.
مرحله ۱ : اکنون یک ایمیل از حساب Gmail ارسال خواهیم کرد و برای آن باید حساب کاربری Gmail خود را در پرونده محرمانه لاراول .env پیکربندی کنید.
تأیید صحت دو مرحله ای را در حساب Gmail خود فعال کنید و یک گذرواژه ویژه برنامه ایجاد کنید و سپس پارامترهای .env را که در زیر نشان داده شده است تغییر دهید.
1 2 3 4 5 6 | 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 |
مرحله ۲ : پس از تغییر فایل .env، دستورات زیر را اجرا کنید تا حافظه پنهان را پاک کنید و سرور Laravel را دوباره راه اندازی کنید.
1 | php artisan config:cache |
مرحله ۳ : با اجرای دستور زیر، یک کنترلر به نام MailController ایجاد کنید.
1 | php artisan make:controller MailController --plain |
مرحله ۴ : بعد از اجرای موفق، خروجی زیر را دریافت خواهید کرد.
مرحله ۵ : کد زیر را در داخل app/Http/Controllers/MailController.php file کپی کنید.
app/Http/Controllers/MailController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <?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."; } } |
مرحله ۶ : کد زیر را در فایل resource / views / mail.blade.php کپی کنید.
resources/views/mail.blade.php
1 2 | <h1>Hi, {{ $name }}</h1> l<p>Sending Mail from Laravel.</p> |
مرحله ۷ : خطوط زیر را در app / Http / routes.php اضافه کنید.
app/Http/routes.php
1 2 3 | Route::get('sendbasicemail','MailController@basic_email'); Route::get('sendhtmlemail','MailController@html_email'); Route::get('sendattachmentemail','MailController@attachment_email'); |
مرحله ۸ : برای تست ایمیل پایه از URL زیر دیدن کنید.
1 | http://localhost:8000/sendbasicemail |
مرحله ۹ : صفحه نمایش خروجی چیزی شبیه به این خواهد بود.
صندوق پستی خود را برای دیدن خروجی ایمیل اصلی ببینید.
مرحله ۱۰ : برای تست ایمیل HTML از URL زیر دیدن کنید.
1 | http://localhost:8000/sendhtmlemail |
مرحله ۱۱ : صفحه نمایش خروجی چیزی شبیه به این خواهد بود.
صندوق ورودی خود را چک کنید تا خروجی ایمیل اچ تی ام ال را ببینید.
مرحله ۱۲ : برای تست ایمیل HTML با پیوست، از URL زیر دیدن کنید.
1 | http://localhost:8000/sendattachmentemail |
مرحله ۱۳ : شما می توانید خروجی زیر را ببینید.
در فایل MailController.php آدرس ایمیل در این روش، باید آدرس ایمیلی باشد که از طریق آن می توانید آدرس ایمیل را ارسال کنید. به طور کلی، باید آدرس ایمیل پیکربندی شده روی سرور شما باشد.
در کل ارسال ایمیل در لاراول به شما این امکان را می دهد تا پیغام های ایمیل خود را در view ها ذخیره نمایید. به عنوان مثال برای سازماندهی ایمیل ها می توان یک پوشه به نام emails داخل پوشه یresources/views ایجاد کرد. جهت ارسال ایمیل در لاراول، کافی است متد send را در Mail facade فراخوانی کنید.
امیدواریم از آموزش ارسال ایمیل در لاراول بیشترین بهره را برده باشید.