ارسال ایمیل برای بسیار از پروژههای وب، یک عملکرد رایج است: اعلانات، یادآور رمز عبور، فاکتورها و... با کمک ایمیل انجام میشوند. اما در سالهای اخیر، به یک مشکل فنی بر خوردهایم. دیگر مسئله فقط ارسال ایمیل نیست، بلکه تحویل صحیح آنها نیز هست.
چرا ارسال ایمیل دیگر آنقدرها هم ساده نیست؟
عللی که ممکن است ایمیلها به صحت تحویل داده نشوند:
- خطای فنی در اسکریپت برنامهنویسی شما
- مسدود شدن توسط Provider شما در هنگام ارسال
- رد شدن از محدودیت تعیین شده برای ارسال ایمیل توسط Provider میزبان شما
- مسدود شدن توسط سرور دریافت کننده به علت محبوبیت پایین Provider شما
- وارد شدن به Spam یا دیگر فولدرهای دارای فیلترینگ خودکار
- وارد شدن به تبهایی مانند Promotion در جیمیل
- غیره...
به جز خطا در اسکریپت، اکثر این شکستها یک علت دارند: سرور Provider میزبان شما، درست تنظیم نشده است. از نظر فنی، این سرورها میتوانند ایمیلها را ارسال کنند، اما تضمینی برای تحویل داده شدن آنها نمیکند.
در سالهای اخیر، کاربران ایمیل علیه اسپم و ایمیلهای ناخواسته شاکی شدند. آنها تعداد زیادی مکانیزم مسدود کردن خودکار بر پایه محبوبیت ارسال کننده را راهاندازی کردند.
رایجترین مثال، وقتی است که IP سرور به علت میزان ایمیلهایی که ارسال میکند، در لیست سیاه قرار میگیرد. وقتی که بیش از ۱۰۰ ایمیل را از یک سرور اشتراکی ارسال میکنید، این اتفاق میافتد. مثلا وقتهایی که از یک تابع PHP قدیمی مانند mail() استفاده میکنید.
Providerهای شخص ثالث در اینجا به عمل میآیند.
Providerهای شخص ثالث ارسال ایمیل
برای حل اکثر مشکلات ذکر شده در بالا، میتوانید از یک سرویس برای تحویل ایمیل استفاده کنید. هر زمان که میخواهید ایمیلی را ارسال کنید، تابع آن سرویس را فراخوانی میکنید و آنها فرایند تحویل را برای شما انجام میدهند، که معمولا هم تضمین بیش از 99 درصد را به همراه دارد.
آنها به محبوبیت خود اهمیت زیادی میدهند، پس در سیستمهای خود نیز با اسپمرها مبارزه میکنند. پس اگر تلاش کنید اسپم یا ایمیلهای ناخواسته را از طریق سرورهای آنها ارسال کنید، آنها حساب شما را مسدود میکنند، و دامنه شما در لیست سیاه قرار میگیرد.
معروفترین سرویسها را در لیست زیر مشاهده میکنید:
دقت کنید که این سرورها رایگان نیستند. البته برای ایمیلهایی با حجم بالا. هر کدام از آنها محدودیتی در زمینه ایمیلهای رایگان را دارند. مانند Mailgun به صورت ماهانه اجازه ارسال 10000 ایمیل را میدهد.
لیست قیمتها به این صورت است:
نکته ۱: نمیتوانید این قیمتها را مستقیما مقایسه کنید؛ زیرا هر Provider سطوح مختلفی داشته و از فرمولهای مختلفی برای محاسبه استفاده میکند.
نکته ۲: لطفا به دنبال ارزانترین گزینه نروید؛ زیرا ممکن است ضعیفترین در زمینه تحویل باشد.
مسئله فقط قیمت نیست. نه تنها باید بر روی وبسایت آنها ثبت نام کنید، بلکه باید نام دامنه خود را نیز به تایید برسانید، که قرار است بعدا برای ارسال ایمیلها از آنها استفاده کنید؛ مثلا [Roocket]@roocket.ir.
چگونه از Providerهای شخص ثالث در لاراول استفاده کنیم؟
سه Provider هستند که به طور پیشفرض توسط لاراول پشتیبانی میشوند:
- Mailgun
- Sparkpost
- Amazon SES
برای تمام این موارد، فقط نیاز است که مراحل ثبت نام را به پایان برسانید و آنها را در فایل .env یا config/services.php قرار دهید:
'mailgun' => [
'domain' => 'your-mailgun-domain',
'secret' => 'your-mailgun-key',
],
'sparkpost' => [
'secret' => 'your-sparkpost-key',
],
'ses' => [
'key' => 'your-ses-key',
'secret' => 'your-ses-secret',
'region' => 'ses-region', // e.g. us-east-1
],
پس از آن نیز میتوانید از تابع mail::send() در لاراول استفاده کنید.
اگر میخواهید از هر سرویسی به جز این سه مورد استفاده کنید، باید نحوه ادغام آنها با لاراول را پیدا کنید. احتمال چند دستور برای فراخوانی API یا برخی جزئیات SMTP خواهد بود.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید