ارسال ایمیل با لاراول ۵.۲


امروز میخوام یک آموزش کاربردی در رابطه با ارسال ایمیل با لاراول ۵.۲ رو براتون آموزش بدم امیدوارم که نهایت استفاده رو ببرید.
قدم اول
کانفیگ ایمیل در فایل .env :
ابتدا فایل .env را باز کنید و کد زیر را ویرایش کنید :
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]@gmail.com
MAIL_PASSWORD=***********
MAIL_ENCRYPTION=tlsMAIL_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 AppHttpControllers;
use AppHttpRequests;
use IlluminateHttpRequest;
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 کدنویسی شوند .





