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

4 آذر ۱۴۰۰
سلام مجدد من میخوام وقتی مقاله ای برا وبسایت منتشر میکنم به همه کاربرا ایمیل ارسال بشه همه کار هاشو انجام دادم به صورت job و queue ولی مشکل اینجاست که وقتی میخوام queue رو انجام بدم باید از دستور php artisan queue:work استفاده کنم که نمیخوام اینطوری باشه مثلا هر روز یه تایمی این queue به طور خودکار انجام بشه بدون اینکه با artisan بنویسم یا اینکه کلا باید از روش دیگه ای برا اینکار استفاده کنم؟(میخوام وقتی مقاله ای برا وبسایت منتشر میکنم به همه کاربرا ایمیل ارسال بشه) میدونم زیاد به این آموزش مرتبط نیست ولی خیلی کارم گیره
1407

14 پاسخ
  • قاسم بساکی4 آذر ۱۴۰۰

    سلام دوست عزیزم من خودم هم به همین شکل از queue استفاده می کنم ولی راستش دنبال راه دیگه ای نگشتم . بازهم اگه راهی به ذهنم رسید میگم بهتون.

  • 4 آذر ۱۴۰۰

    ممنون
    و اینکه چطور از همین queue استفاده کنم؟
    بدون اینکه دستور php artisan queue:work رو بزنم؟

  • قاسم بساکی4 آذر ۱۴۰۰

    راستش قبلا هم راهی برای این مورد پیدا نکردم ولی شاید بتونید این دستور رو در کنترلر اجرا کنید ، بعد از ثبت مقاله. که به صورت اتوماتیک انجام بشه. و نیاز به اجرای دستی دستور نباشه. این لینک رو بررسی کنید

    https://webdevetc.com/programming-tricks/laravel/general-laravel/how-to-run-an-artisan-command-from-a-controller/
  • 4 آذر ۱۴۰۰

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

  • 4 آذر ۱۴۰۰
     protected function schedule(Schedule $schedule)
        {
            $schedule->command('queue:work')->everyMinute();
        }

    با این دستور تونستم انجام بدم ولی خودشو باید با این دستور: 
    * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
    تو سرور اضافه کنم که بلد نیستم میشه راهنمایی کنید؟
    راستش من اولین پروژه مو گرفتم و خیلی مهمه که این کار رو انجام بدم

     

  • قاسم بساکی5 آذر ۱۴۰۰

    آیا بدون استفاده از queue امتحان کردید ؟ که ازمتود ارسال ایمیل بعد از ثبت مقاله استفاده بشه؟

  • 5 آذر ۱۴۰۰

    بله بدون queue امتحان کردم ولی مثلا از 5 تا کاربر بیشتر میشه خطا میده چون ارسال ایمیل یکم زمان بره

  • قاسم بساکی5 آذر ۱۴۰۰

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

  • 5 آذر ۱۴۰۰

    چطوری ایمیل گروهی بفرستم؟

  • قاسم بساکی5 آذر ۱۴۰۰

    خیلی کار سختی نیست معمولا همونجایی که ایمیل رو وارد میکنید باید با , از هم جداسون کنید یا یک آرایه بدید الان دسترسی به پروژه های خودم ندارم که نمونه کد خودم بدم ولی این اینک ممکنه کمک کنه

    https://stackoverflow.com/questions/30787399/laravel-5-sending-group-emails

    میتونید این رو هم سرچ کنید نمونه زیاد هست

    how to send group mail in laravel

  • 5 آذر ۱۴۰۰

    خیلی ممنون

  • 5 آذر ۱۴۰۰

    یه سری سوال هم دارم میشه ایمیل کنم براتون؟

  • قاسم بساکی5 آذر ۱۴۰۰

    دوست من مشکلی نیست همینجا بپرسید

  • 5 آذر ۱۴۰۰

    خیلی ممنون از پاسخگوییت واقعا لطف کردی بهم
    تونستم queue رو ردیف کنم با دستور cron
    فقط الان تو ست کردن ایمیل تو فایل env گیر کردم