Laravel

امروز میخوام یک آموزش کاربردی در رابطه با ارسال ایمیل با لاراول ۵.۲ رو براتون آموزش بدم امیدوارم که نهایت استفاده رو ببرید.

قدم اول

کانفیگ ایمیل در فایل .env :

ابتدا فایل .env را باز کنید و کد زیر را ویرایش کنید :

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=info@studio-design@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' => 'info@studio-design.ir', '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('test@gmail.com', $data);
            $message->to('info@studio-design.ir')->subject('Studio-design | Test Send Mail Laravel5.2');
        });

        if ($email) {
            return ایمیل با موفقیت ارسال شد.;
        }
        return خطا در ارسال ایمیل لطفا تلاش کنید.;
    }
}

حال به بررسی کدها میپردازیم :

ابتدا برای ارسال ایمیل از متود send کلاس Mail استفاده میکنیم که در این روش سه پارامتر را از ما دریافت میکند :

پارامتر اول : فایل view مورد نظر جهت قالب ایمیل .

پارامتر دوم : متغیری جهت استفاده در متن ایمیل میتوانید استفاده کنید .

پارامتر سوم : متغیر message جهت ارسال پیغام به تابع ایمیل استفاده میشود.

در نهایت اگر ایمیل ارسال شود مقدار متغیر email برابر با ۱ میشود و پیغام مورد نظر را بازمیگرداند و در غیر این صورت پیغام خطا در ارسال ... را باز میگرداند .

سپس به فایل route.php رفته و یک روت جدید را تعریف کنید :

Route::get('/', 'HomeController@mail');

حال برای ارسال ایمیل و نمایش نتیجه به مسیر تعریف شده میرویم : ( * در اینجا پروژه ما در پوشه 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 کدنویسی شوند .