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

نویسنده : Admin | تاریخ : ۱۲ مرداد, ۱۳۹۵

 

 

ارسال ایمیل در لاراول

 

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

قدم اول

کانفیگ ایمیل در فایل .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/

 

به احتمال خیلی زیاد شما با ارور زیر مواجه میشوید ، هیچ جای نگرانی نیست این ارور بدلیل اهراز هویت امنیتی ایمیل شما میباشد که توسط سرور جیمیل از دسترسی به آن جلوگیری شده  .

۷۵۰ce941e4fa4fe68438dedb2e7c3e6a

 

برای حل این مشکل ابتدا دوکار را باید انجام دهید ، ابتدا به آدرس : رفته  https://accounts.google.com/b/0/DisplayUnlockCaptcha و بروی continue  کلیک کنید تا دسترسی برای ایمیل تان فعال گردد .

Screenshot_32

سپس به تنظیمات امنیتی خود رفته https://myaccount.google.com/security#connectedapps و Allow less secure apps رو بروی on قرار دهید .

Screenshot_1

 خب دیگه با خیال راحت اقدام به ارسال ایمیل کنید . مجددا صفحه خود را رفرش کنید ، بله شما با پیغام “ایمیل با موفقیت ارسال شد” مواجه شدید . حالا برای دیدن نتیجه ایمیل خود را چک کنید :

Screenshot_2

Screenshot_3

بله مشاهده میکنید که به راحتی تمام موفق شدید که ایمیل خودتون رو با استفاده از فریم ورک محبوب لاراول ارسال کنید .

نکته : برای داشتن یک قالب ایمیل دلخواه کافی است به فایل resources/views/emails/mail.blade.php رفته و کدهای HTML خودتون رو قرار دهید دقت داشته باشید که همه کدها برای نمایش بهتر تصاویر و … باید به صورت inline کدنویسی شوند .


برچسب‌ها:

مقاله ها