Mailjet הוא שירות אימייל גלובלי של צד שלישי שמציע למשתמשי Compute Engine רמה חינמית עם 6,000 אימיילים בכל חודש. בנוסף, Mailjet מציעה גם:
- API, ממשק משתמש ושרת SMTP לשליחת אימיילים טרנזקציוניים ושיווקיים.
- עמידה בדרישות של תקנות פרטיות הנתונים באירופה.
- תכונות שקשורות לאימייל ולמסירה, כמו הגדרות עדיפות שניתנות להתאמה אישית וניהול אוטומטי של הגבלת קצב השליחה.
- ספריית משאבי API ב-Go, PHP, Nodejs, Java, Python ו-Ruby לניהול חשבונות משנה, אימות, אנשי קשר, קמפיינים, מטענים ייעודיים (payload) בהתאמה אישית, נתונים סטטיסטיים, אירועים בזמן אמת וניתוח באמצעות Event API.
- מסגרת MJML משולבת ליצירת תבניות אימייל רספונסיביות בפורמט HTML.
- תמיכה מסביב לשעון ב-4 שפות לפחות.
- אפשרות לשלוח הודעות אימייל מדומיינים אחרים מלבד
gmail.com.
במאמר הזה מוסבר איך להגדיר את מכונת ה-VM לשליחת אימייל דרך Mailjet באמצעות השיטות הבאות:
- דרך ממסר SMTP עם:
- Postfix
- Nodemailer ב-Node.js
- ישירות דרך Mailjet API באמצעות Java
לעיון במסמכים מפורטים על פתרונות אחרים לאימייל, כולל דוגמאות לשילוב עם שרתי SMTP, ספריות ומסגרות נפוצים, אפשר לעיין במסמכים של Mailjet.
לפני שמתחילים
יוצרים חשבון Mailjet חדש בדף השותף של Mailjet ב-Google*. במהלך ההרשמה, צריך לספק את הדומיין ואת כתובת האימייל שמהם רוצים לשלוח הודעות אימייל.
מוודאים שכתובת האימייל שממנה רוצים לשלוח אימיילים אומתה.
מגדירים כלל חומת אש כדי לאפשר תעבורת נתונים מסוג TCP ביציאה 2525.
* Google מקבלת תשלום על לקוחות שנרשמים לחשבון בתשלום.
הגדרת Mailjet כשרת ממסר SMTP
הגדרת Mailjet כממסר דואר מאפשרת לכם להעביר הודעות אימייל אל Mailjet לצורך מסירה מרחוק.
שימוש ב-Postfix
מתחברים ל-VM באמצעות SSH, ומחליפים את
instance-nameבשם המופע שממנו רוצים לשלוח הודעות אימייל:gcloud compute ssh instance-name
ב-VM, מתקינים את Postfix Mail Transport Agent. כשמוצגת בקשה, מאשרים את ברירות המחדל לשמות הדומיינים ובוחרים את ההגדרה
Local Only.Debian
sudo apt update && sudo apt -y install postfix libsasl2-modulesCentOS
sudo yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -yמשנים את אפשרויות ההגדרה של Postfix. אפשרויות ההגדרה של Postfix מוגדרות בקובץ
main.cf. פותחים את הקובץ בכלי לעריכת טקסט לפי בחירה:sudo vi /etc/postfix/main.cfמעדכנים את הקובץ:
מוסיפים הערה לשורות הבאות:
# default_transport = error # relay_transport = errorמוסיפים את השורות הבאות לסוף הקובץ:
relayhost = in-v3.mailjet.com:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymousהשורות האלה אוכפות תמיכה ב-SSL/TLS ומגדירות אימות SMTP לבקשות האלה. מודול פשוט של שכבת גישה ואבטחה (SASL) מטפל באימות בהגדרת Postfix.
שומרים את השינויים וסוגרים את הקובץ.
יוצרים את מיפוי הסיסמאות של SASL באמצעות עורך הטקסט שבחרתם:
sudo vi /etc/postfix/sasl_passwdמוסיפים את השורות הבאות לקובץ
sasl_passwdכדי לספק את פרטי הכניסה של Mailjet:in-v3.mailjet.com:2525 YOUR_API_KEY:YOUR_SECRET_KEYמשתמשים בכלי
postmapכדי ליצור קובץ.db:sudo postmap /etc/postfix/sasl_passwd sudo 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לאחר מכן, מסירים את הקובץ שמכיל את פרטי הכניסה כי הוא כבר לא נחוץ:
sudo rm /etc/postfix/sasl_passwdמגדירים את ההרשאות בקובץ
.db:sudo chmod 600 /etc/postfix/sasl_passwd.db sudo ls -la /etc/postfix/sasl_passwd.dbלבסוף, טוענים מחדש את ההגדרה כדי לטעון את הפרמטרים ששונו:
Debian
sudo /etc/init.d/postfix restartCentOS
sudo postfix reloadבודקים את ההגדרה. מתקינים את החבילה
mailxאוmailutilsובודקים את ההגדרה.Debian
sudo apt -y install mailutilsCentOS
sudo yum install mailx -yשליחת הודעת בדיקה:
echo 'Test passed.' | mail -s 'Test-Email' -aFrom:from-email destination-email
מחליפים את מה שכתוב בשדות הבאים:
from-email: כתובת אימייל שאומתה.-
destination-email: הכתובת שאליה תישלח הודעת האימייל.
מחפשים ביומנים של המערכת שורת סטטוס שמכילה את
statusואת קוד התגובה של השרת(250):Debian
sudo tail -n 5 /var/log/syslogCentOS
sudo tail -n 5 /var/log/maillog
אם נתקלתם בבעיות בהגדרת Postfix עם Mailjet, תוכלו להיעזר בהוראות ההגדרה של Mailjet Postfix.
שימוש ב-Nodemailer
בהוראות הבאות מוסבר איך להשתמש ב-Mailjet עם Node.js ב-Debian Wheezy.
-
מתחברים למופע באמצעות SSH:
gcloud compute ssh instance-name
-
מעדכנים את מאגרי החבילות:
user@test-wheezy:~# sudo apt update
-
מתקינים את יחסי התלות של Node.js:
user@test-wheezy:~# sudo apt -y install git-core curl build-essential openssl libssl-dev
-
משכפלים את מאגר Node.js מ-GitHub:
user@test-wheezy:~# git clone https://github.com/nodejs/node
-
משנים את הספרייה לעץ המקור של Node.js:
user@test-wheezy:~# cd node
-
מגדירים את תוכנת הצומת למערכת ההפעלה ולמכונה הווירטואלית:
user@test-wheezy:~# ./configure
-
בניית Node.js, npm ואובייקטים קשורים:
user@test-wheezy:~# sudo make
הפעולה עשויה להימשך כמה דקות.
-
מתקינים את Node.js, npm ותוכנות אחרות במיקום ברירת המחדל:
user@test-wheezy:~# sudo make install
-
מתקינים את חבילת כלי השליחה:
user@test-wheezy:~# npm install nodemailer nodemailer-smtp-transport
-
בספרייה
node, יוצרים קובץ חדש בשםsendmail.jsשמכיל את קוד ה-JavaScript הבא: -
מריצים את התוכנית כדי לשלוח הודעת אימייל דרך Mailjet:
user@test-wheezy:~# node sendmail.js
- מתחברים למופע באמצעות SSH:
gcloud compute ssh instance-name
-
מעדכנים את מאגרי החבילות:
user@test-centos:~# sudo yum update -y
-
מתקינים את יחסי התלות של Node.js:
user@test-centos:~# sudo yum install git-core curl openssl openssl-dev -y ... user@test-centos:~# sudo yum groupinstall "Development Tools" -y ...
-
משכפלים את מאגר Node.js מ-GitHub:
user@test-centos:~# git clone https://github.com/nodejs/node
-
משנים את הספרייה לעץ המקור של Node.js:
user@test-centos:~# cd node
-
מגדירים את תוכנת הצומת למערכת ההפעלה ולמכונה הווירטואלית:
user@test-centos:~# ./configure
-
בניית Node.js, npm ואובייקטים קשורים:
user@test-centos:~# sudo make
הפעולה עשויה להימשך כמה דקות.
-
מתקינים את Node.js, npm ותוכנות אחרות במיקום ברירת המחדל:
user@test-centos:~# sudo make install
-
מתקינים את חבילת כלי השליחה:
user@test-centos:~# npm install npm install nodemailer nodemailer-smtp-transport
-
בספרייה
node, יוצרים קובץ חדש בשםsendmail.jsשמכיל את קוד ה-JavaScript הבא: -
מריצים את התוכנית כדי לשלוח הודעת אימייל דרך Mailjet:
user@test-centos:~# node sendmail.js
שליחת דואר דרך Mailjet API באמצעות Java
דוגמאות נוספות לשימוש ב-Mailjet API זמינות בתיעוד הרשמי של Mailjet.
-
מתחברים למופע באמצעות SSH:
gcloud compute ssh instance-name
-
מעדכנים את מאגרי החבילות ומתקינים את החבילות הנדרשות:
user@test-instance:~# sudo apt update && sudo apt install git-core openjdk-8-jdk maven
-
משכפלים את מאגר Java מ-GitHub:
user@test-instance:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
עוברים לקוד המקור הראשי של הדוגמה, שנמצא בכתובת:
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
קובעים את ההגדרות של Mailjet. אפשר לעיין במסמכי האימות של Mailjet כדי להבין איך להחליף את המשתנים הבאים:
-
your-mailjet-api-key: מפתח API לחשבון Mailjet. -
your-mailjet-secret-key: המפתח הסודי התואם לחשבון Mailjet.
-
-
מהספרייה
mailjet, משתמשים ב-Maven כדי לארוז את המחלקה כקובץ JAR:user@test-instance:~# mvn clean package
-
מוודאים שמשתמשים ב-OpenJDK 8:
user@test-instance:~# sudo update-alternatives --config java
-
כדי לשלוח אימייל: בספריית היעד, מריצים את קובץ ה-JAR עם כתובות האימייל של הנמען והשולח כארגומנטים:
user@test-instance:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
- מתחברים למופע באמצעות SSH:
gcloud compute ssh instance-name
-
מעדכנים את מאגרי החבילות ומתקינים את החבילות הנדרשות:
user@test-centos:~# sudo yum update && sudo yum install git-core openjdk-8-jdk maven
-
משכפלים את מאגר Java מ-GitHub:
user@test-centos:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
-
עוברים לקוד המקור הראשי של הדוגמה, שנמצא בכתובת:
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
קובעים את ההגדרות של Mailjet. למידע על החלפת המשתנים הבאים, אפשר לעיין במסמכי האימות של Mailjet:
-
your-mailjet-api-key: מפתח API לחשבון Mailjet. -
your-mailjet-secret-key: המפתח הסודי התואם לחשבון Mailjet.
-
-
מהספרייה
mailjet, משתמשים ב-Maven כדי לארוז את המחלקה כקובץ JAR:user@test-centos:~# mvn clean package
-
מוודאים שמשתמשים ב-OpenJDK 8:
user@test-centos:~# sudo alternatives --config java
-
כדי לשלוח אימייל, מריצים את קובץ ה-JAR מהספרייה של היעד עם כתובות האימייל של הנמען והשולח כארגומנטים:
user@test-centos:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
הגדרות SMTP של Mailjet
בהמשך מופיעה רשימה של הגדרות SMTP ספציפיות ל-Mailjet שמשמשות להגדרת לקוחות:
- מארח: in-v3.mailjet.com
- יציאה: 2525
המאמרים הבאים
כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.