ارسال ایمیل با لاراول ۵.۲
امروز میخوام یک آموزش کاربردی در رابطه با ارسال ایمیل با لاراول ۵.۲ رو براتون آموزش بدم امیدوارم که نهایت استفاده رو ببرید.
قدم اول
کانفیگ ایمیل در فایل .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 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
کدنویسی شوند .