ارسال ایمیل با استفاده از queue در لاراول

۲۰ مرداد ۱۳۹۸

 

در این آموزش قصد داریم نحوه ارسال ایمیل را بررسی کنیم و با استفاده از صف ها ایمیل های خودمان را ارسال کنیم. چرا صف؟ خب همان طور که میدانید ارسال ایمیل پروسه ای زمان بر هست و ممکن است چندین ثانیه برای هر ایمیل زمان لازم باشد. حالا فرض کنید قصد داریم صد تا ایمیل را همزمان ارسال کنید قطعا برنامه شما با مشکل مواجه خواهد شدو ممکن است تعداد زیادی از ایمیل ها به مقصد نیز نرسد.

در ابتدا پروژه خود را نصب کنید :

 

نتنظیمات مربوط به دیتابیس را در .env تغییر دهید و نام دیتابیس خود را قرار دهید :

 

حالا با استفاده از دستور زیر یک کلاس ایمیل جدید ایجاد میکنیم:

 

نکته کاربردی : (همیشه در انتهای کلاسهای خود نوع آن را نیز مشخص کنید تا زمانی که پروژه شما بزرگ شد راحت تر بتوانید به کلاس های خود دسترسی پیدا کنید مثلا اگر  کلاسی از نوع listener بود در انتهای آن از کلمه Listener استفاده کنید)

 

با دستور بالا کلاس زیر ایجاد میشود که از کلاس Mailable ارث بری میکند:

 

حالا یک فایل view برای ارسال ایمیل نیز در زیر شاخه resources/views/email با نام مثلا send_email_queue.blade.php ایجاد میکنیم :

 

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

 

یک تغییر دیگر در فایل .env مانده و ان هم تغییر درایور صف از ‌sync  که مقدار پیش فرض است به database (یا هر درایوری که قصد استفاده از آن را دارید مثلا Redis)

برای ایجاد جدول job ها که وظیفه مدیریت صف ها را بر عهده دارد از دستور زیر استفاده کنید

همچنین برای جاب هایی که به خطا میخورند نیز دستور زیر را اجرا کنید تا بهتر بتوانید صف های خود را مدیریت کنید:

 

اکنون برای ایجاد جدوال خود در دیتابیس دستور زیر را اجرا کنید :

 

الان زمان ایجاد جاب مدنظر برای ارسال ایمیل است. دستور زیر را در ترمینال خود وارد کنید:

 

پس از ساختن فایل بالا مطابق کدهای زیر آن را ویرایش میکنیم:

 

ابتدا یک url برای آن ایجاد کنید:

 

برای ارسال ایمیل خود یک controller جدید ایجاد کنید:

 

 

برای اجرای جاب های خود در جدول دستور زیر را اجرا کنید :

 

 

حالا سرور را ران کرده

 

آدرس زیر را در مرورگر خود وارد کنید:

 

البته ذکر این نکته ضروری است که مبحث جاب و صف خیلی مفصل تر و کامل تر است و ما در اینجا قصد داشتیم در یک مثال کاربردی شما را با نحوه ارسال ایمیل آشنا کنیم. در قسمت های  بعدی بیشتر به این مباحث خواهیم پرداخت.

0
برچسب ها :
نویسنده مطلب علی فلاحتی

بدون دیدگاه

لینک های مفید