شما به یک حساب کاربری AWS و دسترسی به DNS دامنه خود نیاز خواهید داشت. SES با اختلاف زیاد ارزانترین گزینه در این فهرست است، و گزینهای است که بیشترین مراحل را دارد.
مستندات خود Amazon: تأیید یک دامنه · دریافت اطلاعات احراز هویت SMTP · خروج از محیط sandbox
⭐ ما از طریق رابط SMTP به SES متصل میشویم، نه از طریق REST API آن. به همین دلیل است که از شما به جای کلید دسترسی AWS، نام کاربری و رمز عبور SMTP خواسته میشود. هر دو مسیر دقیقاً همان پیام را تحویل میدهند؛ مسیر SMTP از بروز یک دسته کامل از مشکلات امضای درخواست AWS که عیبیابی آنها از بیرون بسیار دشوار است جلوگیری میکند، و این رابطی است که Amazon دقیقاً به همین منظور اطلاعات احراز هویت را برای آن منتشر میکند تا ابزارهایی مانند ابزار ما بتوانند از آن استفاده کنند.
۱. یک منطقه انتخاب کنید و در همان بمانید
SES منطقهای است. همه موارد زیر — دامنه تأییدشده شما، اطلاعات احراز هویت شما، سهمیه ارسال شما — متعلق به یک منطقه AWS است و در هیچ منطقه دیگری وجود ندارد.
نزدیکترین منطقه به مشتریان خود را انتخاب کنید (eu-west-1 برای اروپا، us-east-1 برای آمریکای شمالی) و آن را یادداشت نمایید. تأیید دامنه خود در ایرلند و سپس ایجاد اطلاعات احراز هویت در فرانکفورت، رایجترین روش برای هدر دادن یک بعدازظهر در اینجا است، و خطایی که تولید میکند هیچ اشارهای به مناطق ندارد.
۲. دامنه خود را تأیید کنید
کنسول Amazon SES ← Identities ← Create identity ← Domain. یک زیردامنه مانند mail.yourdomain.com را وارد کنید.
گزینه Easy DKIM را روشن کنید و RSA_2048_BIT را انتخاب نمایید. SES سه رکورد CNAME به شما میدهد:
| Type | Host |
|---|
CNAME | <token1>._domainkey.mail.yourdomain.com |
CNAME | <token2>._domainkey.mail.yourdomain.com |
CNAME | <token3>._domainkey.mail.yourdomain.com |
هر سه را اضافه کنید. تأیید معمولاً ظرف یک ساعت کامل میشود.
⭐ همچنین یک دامنه سفارشی MAIL FROM (bounce.mail.yourdomain.com) را فعال کنید و رکوردهای MX و SPF TXT درخواستی را اضافه نمایید. بدون آن، فرستنده پاکت شما amazonses.com است، بنابراین SPF به جای شما با Amazon همتراز میشود و شما تنها به DKIM متکی خواهید بود.
۳. از sandbox خارج شوید — این مرحلهای است که افراد فراموش میکنند
⛔⛔ یک حساب کاربری جدید SES در محیط sandbox قرار دارد و فقط میتواند به آدرسهایی ارسال کند که جداگانه تأیید کردهاید. بقیه موارد را میپذیرد و هیچکدام را تحویل نمیدهد.
این دقیقاً همان خطایی است که مرحله تأیید ما برای تشخیص آن ایجاد شده است: در sandbox، سرویس SES پیام شما را با یک پاسخ موفقیت کاملاً معمولی دریافت میکند و سپس آن را رها میسازد. اگر راهاندازی ما را با ارسال تست به آدرسی که اتفاقاً در AWS تأیید کردهاید بررسی کنید، کار خواهد کرد — و سپس هر پیامی به یک مشتری واقعی ناپدید خواهد شد.
داشبورد حساب کاربری ← Request production access. سرویس Amazon میپرسد چه چیزی ارسال میکنید و بازگشتها (bounces) را چگونه مدیریت مینمایید؛ چند جمله صادقانه درباره اعلانهای تراکنشی به مشتریان خودتان معمولاً ظرف ۲۴ ساعت تأیید میشود.
⭐ این کار را قبل از اتصال SES در اینجا انجام دهید. بعد از آن چیزی برای عیبیابی وجود ندارد، زیرا هیچ مشکلی با شکست مواجه نمیشود.
۴. ایجاد اطلاعات احراز هویت SMTP
کنسول SES ← SMTP settings ← Create SMTP credentials.
این کار یک کاربر IAM با مجوز فقط ارسال (send-only) ایجاد میکند و یک نام کاربری SMTP و یک رمز عبور SMTP به شما میدهد.
⛔ اینها کلید دسترسی و کلید مخفی AWS شما نیستند. آنها با یک الگوریتم خاص از یک کلید مخفی IAM مشتق شدهاند و قابل تعویض با یکدیگر نیستند. الصاق یک کلید دسترسی مخفی AWS در اینجا هر بار باعث شکست در احراز هویت میشود، و خطا صرفاً بیان خواهد کرد که اطلاعات احراز هویت رد شده است.
⚠️ رمز عبور فقط یک بار نشان داده میشود. قبل از خروج از صفحه، فایل CSV را دانلود کنید.
۵. اتصال آن در Zinn®
بخش Email sending را در داشبورد خود باز کنید:
- Provider — Amazon SES
- Send from this domain —
mail.yourdomain.com
- AWS region — منطقه مربوط به مرحله ۱، مثلاً
eu-west-1
- SMTP username — از مرحله ۴
- Port — روی ۵۸۷ باقی بگذارید
- SES SMTP password — از مرحله ۴
ما میزبان را برای شما میسازیم (email-smtp.<region>.amazonaws.com)، بنابراین هیچ نام میزبانی برای اشتباه تایپ کردن وجود ندارد.
۶. تست را ارسال کرده و کد را وارد کنید
گزینه Send test message را به یک صندوق ورودی در دامنهای متفاوت که در AWS تأیید نکردهاید بزنید — یک آدرس شخصی Gmail ایدهآل است، زیرا این همان آدرسی است که ثابت میکند شما از sandbox خارج شدهاید. کد را بخوانید و آن را وارد کنید.
زمانی که کار نمیکند
"Email address is not verified" در حین ارسال به یک مشتری واقعی — شما هنوز در sandbox هستید. مرحله ۳.
535 Authentication Credentials Invalid — شما به جای اطلاعات احراز هویت SMTP از کلید دسترسی AWS خود استفاده کردهاید (مرحله ۴)، یا اطلاعات احراز هویت متعلق به منطقهای متفاوت از منطقهای است که وارد کردهاید.
"Maximum sending rate exceeded" — یک حساب کاربری پروداکشن جدید با ۱۴ پیام در ثانیه و ۵۰,۰۰۰ پیام در روز شروع میشود. این تعداد بسیار زیادی اعلان است، اما اگر در حال انتقال پایگاه مشتریان بزرگی هستید، ابتدا درخواست افزایش دهید.
در تست کار کرد و در پروداکشن متوقف شد — داشبورد Reputation در SES را بررسی کنید. زمانی که نرخ بازگشت یا شکایت از آستانه آنها عبور کند، Amazon ارسال را بهطور خودکار متوقف میکند، و با یک فهرست مشتریان قدیمی بهراحتی میتوان از این آستانه عبور کرد.