امروز میخوام یک آموزش کاربردی در رابطه با ارسال ایمیل با لاراول ۵.۲ رو براتون آموزش بدم امیدوارم که نهایت استفاده رو ببرید.
قدم اول
کانفیگ ایمیل در فایل .env
:
ابتدا فایل .env
را باز کنید و کد زیر را ویرایش کنید :
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]@gmail.com
MAIL_PASSWORD=***********
MAIL_ENCRYPTION=tls
MAIL_DRIVER
درایور ایمیل رو مشخص میکنم.MAIL_HOST
هاست ایمیل رو مشخص میکنم که در اینجا چون ما قصد داریم با سرور جیمیل این کار رو انجام بدیمsmtp.gmail.com
رو انتخاب کردیم.MAIL_PORT
پورت ایمیل رو انتخاب میکنیم.MAIL_USERNAME
ایمیلی که قصد دارید باهاش ایمیل ارسال بشود را وارد کنید.MAIL_PASSWORD
پسورد ایمیل خود را وارد کنید.MAIL_ENCRYPTION
نوع رمزگذاری اطلاعات را مشخص کنید که ترجیحا بر رویtls
قرار دهید.
قدم دوم
فایل config/mail.php
را باز کنید و اطلاعات مشخص شده را وارد کنید :
'from' => ['address' => '[email protected]', 'name' => 'استودیودیزاین'],
در این قسمت تکه کد بالا را پیدا کرده و در قسمت address
آدرس ایمیلی که میخواهید از طرف شما ارسال شود را قرار دهید و سپس در قسمت name
نامی را مشخص کنید .
خب تا اینجا تظیمات مربوط به ارسال ایمیل تعیین شد ، حال نوبت به کدنویسی ارسال ایمیل میرسد .
قدم سوم
کدنویسی ارسال ایمیل :
داخل کنترلر دلخواه خود کدهای زیر را قرار دهید :
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use Mail;
class HomeController extends Controller
{
public function mail()
{
$data = 'آموزش ارسال ایمیل در لاراول ۵٫۲';
$email = Mail::send('emails.mail', ['data'=>$data], function ($message) use ($data){
$message->from('[email protected]', $data);
$message->to('[email protected]')->subject('Studio-design | Test Send Mail Laravel5.2');
});
if ($email) {
return ایمیل با موفقیت ارسال شد.;
}
return خطا در ارسال ایمیل لطفا تلاش کنید.;
}
}
حال به بررسی کدها میپردازیم :
ابتدا برای ارسال ایمیل از متود send
کلاس Mail
استفاده میکنیم که در این روش سه پارامتر را از ما دریافت میکند :
پارامتر اول : فایل view
مورد نظر جهت قالب ایمیل .
پارامتر دوم : متغیری جهت استفاده در متن ایمیل میتوانید استفاده کنید .
پارامتر سوم : متغیر message
جهت ارسال پیغام به تابع ایمیل استفاده میشود.
در نهایت اگر ایمیل ارسال شود مقدار متغیر email برابر با ۱ میشود و پیغام مورد نظر را بازمیگرداند و در غیر این صورت پیغام خطا در ارسال ... را باز میگرداند .
سپس به فایل route.php
رفته و یک روت جدید را تعریف کنید :
Route::get('/', '[email protected]');
حال برای ارسال ایمیل و نمایش نتیجه به مسیر تعریف شده میرویم : ( * در اینجا پروژه ما در پوشه laravel52
میباشد که شما باید نام پوشه پروژه جاری خود را جایگزین کنید)
http://localhost/laravel52/public/
به احتمال خیلی زیاد شما با ارور زیر مواجه میشوید ، هیچ جای نگرانی نیست این ارور بدلیل اهراز هویت امنیتی ایمیل شما میباشد که توسط سرور جیمیل از دسترسی به آن جلوگیری شده .
برای حل این مشکل ابتدا دوکار را باید انجام دهید ، ابتدا به آدرس : رفته https://accounts.google.com/b/0/DisplayUnlockCaptcha
و بروی continue
کلیک کنید تا دسترسی برای ایمیل تان فعال گردد .
سپس به تنظیمات امنیتی خود رفته https://myaccount.google.com/security#connectedapps
و Allow less secure apps
رو بروی on
قرار دهید.
خب دیگه با خیال راحت اقدام به ارسال ایمیل کنید . مجددا صفحه خود را رفرش کنید ، بله شما با پیغام ایمیل با موفقیت ارسال شد مواجه شدید . حالا برای دیدن نتیجه ایمیل خود را چک کنید :
بله مشاهده میکنید که به راحتی تمام موفق شدید که ایمیل خودتون رو با استفاده از فریم ورک محبوب لاراول ارسال کنید .
نکته : برای داشتن یک قالب ایمیل دلخواه کافی است به فایل resources/views/emails/mail.blade.php
رفته و کدهای HTML
خودتون رو قرار دهید دقت داشته باشید که همه کدها برای نمایش بهتر تصاویر و ... باید به صورت inline
کدنویسی شوند .