Logo for Parsclick

ارسال ایمیل با لاراول 5.2

  بهروز ولیخانی بهروز ولیخانی
  August 3, 2016 at 7:49 AM
  ۱۳ امرداد، ۱۳۹۵ ساعت ۷:۴۹
send-email

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


قدم اول


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


منبع : www.studio-design.ir