שליחת אימייל באמצעות Mailgun

‫Google Cloud פועל עם Mailgun כדי לספק שירות אימייל עם API לתכנות, שמירת יומנים, התאמה אישית של אימיילים, ניתוח נתונים ואימות אימיילים.

בהוראות הבאות מוסבר איך להגדיר את Mailgun כשרת ממסר באמצעות Postfix.

לפני שמתחילים

  1. נרשמים ויוצרים חשבון Mailgun חדש ב-Google Cloud Marketplace.

  2. מקבלים את פרטי הכניסה. כדי לבצע את ההוראות, צריך לדעת את שם המשתמש, הסיסמה ושם המארח של Mailgun SMTP. אפשר למצוא את שם המשתמש והסיסמה בחלונית הבקרה של Mailgun, בקטע Domains (דומיינים).

    בהתאם לאופן שבו הדומיין מוגדר ב-Mailgun, שם המארח של SMTP הוא smtp.mailgun.org או smtp.eu.mailgun.org.

  3. מגדירים את כללי חומת האש כך שיאפשרו תעבורת נתונים יוצאת ביציאת TCP מספר 2525.

הגדרת Mailgun כממסר דואר באמצעות Postfix

הגדרת Mailgun כממסר דואר מאפשרת לסוכן להעברת דואר Postfix להעביר אימיילים שנועדו למסירה מרחוק.

  1. מתחברים למופע באמצעות SSH.

    gcloud compute ssh [INSTANCE_NAME]
    

    כאשר [INSTANCE_NAME] הוא שם מופע מכונת ה-VM שממנו רוצים לשלוח אימייל.

  2. להפוך למשתמש על ולהגדיר umask בטוח.

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. מתקינים את סוכן העברת הדואר Postfix.

    Debian

    root@test-instance:~# apt update && apt -y install postfix libsasl2-modules
    

    CentOS

    root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
    

  4. כשמוצגת בקשה, בוחרים את ההגדרה Local Only ומאשרים את ברירות המחדל לשמות הדומיינים.

  5. משנים את אפשרויות ההגדרה של Postfix. אפשרויות ההגדרה של Postfix מוגדרות בקובץ main.cf. פותחים את הקובץ בכלי לעריכת טקסט לבחירתכם.

    root@test-instance:~# vi /etc/postfix/main.cf
    
  6. אם הן קיימות, מוסיפים הערה לשורות הבאות.

    # default_transport = error
    # relay_transport = error
    
  7. מוסיפים את שירות ה-SMTP של Mailgun על ידי הוספת השורה הבאה לסוף הקובץ.

    relayhost = [smtp.mailgun.org]:2525
    
  8. כדי לאכוף תמיכה ב-SSL/TLS ולהגדיר אימות SMTP לבקשות האלה, מוסיפים את השורות הבאות לסוף הקובץ. מודול פשוט של שכבת אבטחה וגישה (SASL) מטפל באימות בהגדרת Postfix.

    smtp_tls_security_level = encrypt
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    
  9. שומרים את השינויים וסוגרים את הקובץ.

  10. יוצרים את מיפוי הסיסמאות של SASL.

    1. יוצרים קובץ סיסמאות חדש שמוכן לקלט רגיל.

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. בהנחיה, מזינים את פרטי השירות ומחליפים את YOUR_SMTP_LOGIN ואת YOUR_SMTP_PASSWORD בפרטי הכניסה שלכם. הוראות לצפייה בפרטי הכניסה לכל דומיין או לשינוי שלהם מופיעות במרכז העזרה של Mailgun.

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. סוגרים ושומרים את הקובץ על ידי הקלדת תו המפריד, EOF.

      > EOF
      
  11. משתמשים בכלי postmap כדי ליצור קובץ .db.

    root@test-instance:~# postmap /etc/postfix/sasl_passwd
    
    root@test-instance:~# ls -l /etc/postfix/sasl_passwd*
    
    -rw------- 1 root root    68 Jun  1 10:50 /etc/postfix/sasl_passwd
    -rw------- 1 root root 12288 Jun  1 10:51 /etc/postfix/sasl_passwd.db
    
  12. לאחר מכן, מסירים את הקובץ שמכיל את פרטי הכניסה כי הוא כבר לא נחוץ.

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  13. מגדירים את ההרשאות בקובץ .db.

    root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
    
    root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db
    
    -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
    
  14. לבסוף, טוענים מחדש את ההגדרות כדי לטעון את הפרמטרים ששונו.

    Debian

    root@test-wheezy:~# /etc/init.d/postfix restart
    

    CentOS

    [root@test-centos ~]# postfix reload
    

  15. בודקים את ההגדרה. מתקינים את החבילה mailx או mailutils ובודקים את ההגדרה.

    Debian

    root@test-wheezy:~# apt -y install mailutils
    

    CentOS

    [root@test-centos ~]# yum install mailx -y
    

    שולחים הודעת בדיקה.

    root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
    

    מחפשים ביומני המערכת שורת סטטוס שמכילה את status ואת קוד התגובה המוצלח של השרת (250).

    Debian

    root@test-wheezy:~# tail -n 5 /var/log/syslog
    

    CentOS

    [root@test-centos ~]# tail -n 5 /var/log/maillog
    

דוגמאות מפורטות ומידע על נושאים אחרים, כולל מעקב אחרי הודעות וניתוב שלהן, זמינים במאמרי העזרה של Mailgun.

כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.