תזדקקו לחשבון AWS ולגישה ל-DNS של הדומיין שלכם. SES היא האפשרות הזולה ביותר ברשימה זו בהפרש ניכר, וזו שכוללת את מספר השלבים הרב ביותר.
התיעוד של Amazon עצמה: אימות דומיין · השגת פרטי גישה של SMTP · יציאה מסביבת הבדיקות (sandbox)
⭐ אנו מתחברים ל-SES דרך ממשק ה-SMTP שלו, ולא דרך ממשק ה-REST API שלו. זו הסיבה שאתם מתבקשים להזין שם משתמש וסיסמה של SMTP במקום מפתח גישה של AWS. שני המסלולים מעבירים בדיוק את אותה ההודעה; מסלול ה-SMTP מונע קטגוריה שלמה של בעיות חתימת בקשות של AWS שמייגע לאבחן מבחוץ, וזהו הממשק שעבורו Amazon מפרסמת פרטי גישה בדיוק כדי שכלים כמו שלנו יוכלו להשתמש בו.
1. בחרו אזור והישארו בו
SES הוא שירות אזורי. כל מה שמתואר להלן — הדומיין המאומת שלכם, פרטי הגישה שלכם, מכסת השליחה שלכם — שייך לאזור AWS יחיד ואינו קיים באף אזור אחר.
בחרו את האזור הקרוב ביותר ללקוחות שלכם (eu-west-1 עבור אירופה, us-east-1 עבור צפון אמריקה) ורשמו אותו לפניכם. אימות הדומיין שלכם באירלנד ולאחר מכן יצירת פרטי גישה בפרנקפורט היא הדרך הנפוצה ביותר לבזבז פה אחר צהריים שלם, והשגיאה שנוצרת מכך אינה אומרת דבר על אזורים.
2. אמתו את הדומיין שלכם
Amazon SES console ← 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 שהוא מבקש. בלעדיו, שולח המעטפה (envelope sender) שלכם הוא amazonses.com, כך ש-SPF מיושר מול Amazon במקום מולכם, ואתם מסתמכים על DKIM בלבד.
3. צאו מסביבת הבדיקות (sandbox) — זהו השלב שאנשים מפספסים
⛔⛔ חשבון SES חדש נמצא בסביבת בדיקות (sandbox) ויכול לשלוח אך ורק לכתובות שאימתתם בנפרד. הוא יקבל את כל השאר ולא ימסור דבר מתוכן.
זהו בדיוק הכשל ששלב האימות שלנו נועד לזהות: בסביבת הבדיקות, SES מקבל את ההודעה שלכם עם תגובת הצלחה רגילה לחלוטין ואז משליך אותה. אם תאמתו את ההגדרה שלנו על ידי שליחת הבדיקה לכתובת שבמקרה אימתתם ב-AWS, זה יעבוד — ואז כל הודעה ללקוח אמיתי תיעלם.
לוח הבקרה של החשבון ← Request production access. Amazon שואלת מה אתם שולחים וכיצד אתם מטפלים בהודעות שחזרו (bounces); כמה משפטים כנים על הודעות מערכת (transactional) ללקוחות שלכם מאושרים בדרך כלל תוך 24 שעות.
⭐ עשו זאת לפני שאתם מחברים את SES כאן. אין מה לנפות משגיאות לאחר מכן, משום ששום דבר אינו נכשל.
4. צרו פרטי גישה של SMTP
SES console ← SMTP settings ← Create SMTP credentials.
פעולה זו יוצרת משתמש IAM עם הרשאת שליחה בלבד ומספקת לכם שם משתמש של SMTP וסיסמת SMTP.
⛔ אלה אינם מפתח הגישה והמפתח הסודי שלכם ב-AWS. הם נגזרים ממפתח סודי של IAM באמצעות אלגוריתם ספציפי ואינם ניתנים להחלפה ביניהם. הדבקת מפתח גישה סודי של AWS כאן תיכשל באימות בכל פעם, והשגיאה פשוט תציין שפרטי הגישה נדחו.
⚠️ הסיסמה מוצגת פעם אחת בלבד. הורידו את קובץ ה-CSV לפני שתעזבו את הדף.
5. חברו אותו ב-Zinn®
פתחו את Email sending בלוח הבקרה שלכם:
- Provider — Amazon SES
- Send from this domain —
mail.yourdomain.com
- AWS region — האזור משלב 1, לדוגמה
eu-west-1
- SMTP username — משלב 4
- Port — השאירו על 587
- SES SMTP password — משלב 4
אנו בונים את השרת המארח עבורכם (email-smtp.<region>.amazonaws.com), כך שאין שם מארח שניתן להקליד בצורה שגויה.
6. שלחו את הבדיקה והזינו את הקוד
לחצו על Send test message לתיבת דואר נכנס בדומיין אחר שלא אימתתם ב-AWS — כתובת Gmail אישית היא אידיאלית, מכיוון שהיא זו שמוכיחה שיצאתם מסביבת הבדיקות. קראו את הקוד והזינו אותו.
כאשר זה לא עובד
"Email address is not verified" בעת שליחה ללקוח אמיתי — אתם עדיין בסביבת הבדיקות. עברו לשלב 3.
535 Authentication Credentials Invalid — השתמשתם במפתח הגישה שלכם ב-AWS במקום בפרטי גישה של SMTP (שלב 4), או שפרטי הגישה שייכים לאזור שונה מזה שהזנתם.
"Maximum sending rate exceeded" — חשבון סביבת ייצור (production) חדש מתחיל ב-14 הודעות לשנייה ו-50,000 ליום. מדובר בכמות גדולה מאוד של הודעות, אך אם אתם מעבירים בסיס לקוחות גדול, בקשו הגדלה תחילה.
זה עבד בבדיקה והפסיק בסביבת הייצור — בדקו את לוח הבקרה Reputation של SES. Amazon משהה את השליחה באופן אוטומטי כאשר שיעור ההודעות שחזרו או שיעור התלונות חוצה את הרף שלהם, וקל לחצות אותו עם רשימת לקוחות ישנה.