כדי לשפר את אבטחת האימייל ולהבטיח מסירה אמינה של אימיילים בכמויות גדולות, צריך לעבור מ-Mail API מדור קודם לשירות של ספק אימייל רגיל מצד שלישי שמשתמש ב-Simple Mail Transfer Protocol (SMTP), כמו SendGrid, Mailgun או Mailjet.
במדריך הזה מוסבר איך להעביר שירותים של דואר יוצא מ-Mail API לשירות אימייל מבוסס SMTP. אפשר להשתמש בהוראות האלה כדי לעבור לכל ספק אימייל של צד שלישי שמבוסס על SMTP, או להשתמש בסביבת זמן ריצה נתמכת אחרת. במדריך הזה לא מפורטים שלבים להעברת הודעות נכנסות שמשתמשות בחלופה של צד שלישי.
התקן SMTP מציע את היתרונות הבאים בהשוואה ל-Mail API מדור קודם של App Engine:
שירותים מבוססי SMTP משפרים את מסירת האימיילים כי הם מפחיתים את הסיכוי שהאימיילים יסומנו כספאם.
בשירותים שמבוססים על SMTP, אפשר לגשת לדוחות מפורטים של ניתוח נתונים על פתיחות של אימיילים, קליקים והחזרות. הדוחות האלה מספקים מידע שימושי על האינטראקציה של המשתמשים עם האימיילים שלכם.
יש לכם שליטה מלאה על המוניטין של השולח ועל אימות האימייל.
מגבלות שליחה יומיות מוגדלות בהשוואה ל-Mail API מדור קודם, עם גישה לתכונות מתקדמות כמו בדיקות A/B, פילוח ותבניות.
סקירה כללית של תהליך המיגרציה
תהליך ההעברה כולל את השלבים הבאים:
- מגדירים את שירות האימייל מבוסס ה-SMTP כדי לקבל את פרטי הכניסה ל-SMTP.
- מאמתים את הזהות של השולח כדי לבצע אימות באמצעות הדומיין או כתובת האימייל.
- מגדירים את קובצי המקור עם פרטי הכניסה ל-SMTP ושיטת השליחה, ואז פורסים את האפליקציה.
- בודקים את האפליקציה כדי לוודא שפונקציית האימייל פועלת.
הגדרת שירות אימייל מבוסס SMTP
מגדירים חשבון אצל ספק אימייל רגיל של צד שלישי שמשתמש ב-SMTP, כמו SendGrid, Mailgun או Mailjet, ומקבלים מהספק את הפרטים הבאים:
מארח SMTP: כתובת שרת ה-SMTP שמשמשת לשליחת דואר. לדוגמה,
smtp.sendgrid.netאוexample.mailjet.com.יציאה: מספר היציאה של החיבור. לדוגמה,
587להצפנת TLS.שם משתמש: שם המשתמש שלכם לכניסה ל-SMTP בחשבון.
סיסמה או מפתח API: הסיסמה של החשבון או מפתח API, שמשמש כסיסמה לחיבור SMTP. אצל ספקים מסוימים, כמו SendGrid, שם המשתמש הוא ערך קבוע כמו
apikey, ומפתח ה-API משמש כסיסמה.
אימות הזהות של השולח
כדי למנוע ספאם, כל שירותי האימייל דורשים שתאמתו שאתם הבעלים של כתובת האימייל או הדומיין שמהם אתם שולחים אימיילים. בשלב הזה צריך בדרך כלל להוסיף פרטי DNS ספציפיים, כמו רשומות CNAME, לדף ניהול ה-DNS של מארח הדומיין.
כדי להמשיך בהגדרת האפליקציה, צריך לפעול לפי ההוראות של הספק כדי לאמת את זהות השולח.
כדי להוסיף רשומות DNS למארח הדומיין, פועלים לפי השלבים הבאים:
- נכנסים לשירות של ספק ה-DNS.
- עוברים לדף של ניהול ה-DNS של הדומיין.
מוסיפים את רשומות ה-CNAME בדיוק כמו שהן מופיעות אצל ספק שירות האימייל. לכל רשומה, מבצעים את הפעולות הבאות:
- בשדה Name (שם) או Host (מארח), מזינים את פרטי המארח.
- בשדה נקודות או ערך, מזינים את הערך.
יכול להיות שיעברו כמה שעות עד שהשינויים ב-DNS ייכנסו לתוקף. אם האימות נכשל, כדאי לחכות קצת ולנסות שוב.
הגדרת קובצי המקור
כדי לכלול את הפונקציונליות של SMTP, פועלים לפי השלבים הבאים:
מוסיפים את גרסת Python SDK הבאה לקובץ
requirements.txt:appengine-python-standard==2.0.0כדי לעבור לשירות SMTP, מוסיפים את הקוד הבא לקובץ
app.yaml:runtime: RUNTIME # a supported python version env_variables: # Enable the SMTP service. APPENGINE_USE_SMTP_MAIL_SERVICE: "true" # --- SMTP Server Configuration --- # The server address from your mail provider APPENGINE_SMTP_HOST: "SMTP_HOST" # The recommended port for TLS connections APPENGINE_SMTP_PORT: "587" # The username for your SMTP login APPENGINE_SMTP_USER: "SMTP_USER" # The API key or password APPENGINE_SMTP_PASSWORD: "SMTP_PASSWORD" # Use TLS for a secure connection APPENGINE_SMTP_USE_TLS: "true" # --- For sending emails to Admins --- # A comma-separated list of admin email addresses. # This is required if you use the send_mail_to_admins() function. APPENGINE_ADMIN_EMAIL_RECIPIENTS: "admin@example.com,another-admin@example.com"מחליפים את מה שכתוב בשדות הבאים:
- RUNTIME: גרסת זמן ריצה של Python נתמכת.
- SMTP_HOST: כתובת המארח של SMTP. לדוגמה,
smtp.sendgrid.netאוexample.mailjet.com. - SMTP_USER: שם המשתמש שלכם להתחברות ל-SMTP. לדוגמה,
apiKey. - SMTP_PASSWORD: הסיסמה או מפתח ה-API שקיבלתם מספק האימייל של הצד השלישי. כדי לשפר את האבטחה, מומלץ להשתמש ב-Secret Manager כדי לאחסן את מפתח ה-API במקום להציב אותו בקובץ
app.yaml. - אם לא משתמשים בפונקציה
send_mail_to_admins(), לא צריך להגדיר אתAPPENGINE_ADMIN_EMAIL_RECIPIENTS.
מריצים את הפקודה הבאה כדי לפרוס את האפליקציה:
gcloud app deploy
בדיקת האפליקציה
ההעברה הצליחה אם אתם מצליחים לפרוס את האפליקציה ללא שגיאות. כדי לוודא ששירות הדואר שלכם פועל, פועלים לפי השלבים הבאים:
- מפעילים את החלק באפליקציה ששולח אימייל.
- בודקים את Logs Explorer כדי לוודא שאין שגיאות שקשורות לקריאות ל-API או לניסיון החיבור ל-SMTP.
- נכנסים לחשבון אצל ספק האימייל של הצד השלישי (למשל Mailgun, Mailjet, SendGrid) ובודקים את פיד הפעילות, היומנים או מרכז הבקרה של המשלוחים. האימייל לבדיקה אמור להופיע בפיד עם סטטוס מסירה שמסומן כ
Processed,Deliveredאו דומה.