ניוזלטר שנבנה ב-Single Sends ואימייל לאיפוס סיסמה שנשלח דרך /v3/mail/send יכולים לצאת מאותו חשבון SendGrid ועדיין להגיע כאימיילים שונים למדי, וזה חשוב בבדיקת ספאם. Marketing Campaigns תמיד מנסה להוסיף כותרות לביטול הרשמה, ואילו ה-API מוסיף אותן רק אם ביקשתם זאת. לכן החליטו איזה משני הסוגים אתם בודקים לפני שאתם שולחים משהו.
צד הקבלה זהה בשני המקרים. Email Spam Tester מספק לכם כתובת זמנית, ללא צורך בחשבון. רק ההודעה הראשונה שמגיעה בתוך שעה נלקחת בחשבון, ומופק עבורה דוח שכולל אימות, תוצאות של SpamAssassin ושל Rspamd, תוכן, הכללים לשולחים בכמות גדולה שקבעו Gmail ו-Yahoo, ו-21 רשימות חסימה שנבדקות באמצעות כתובת ה-IP השולחת שלכם.
Single Sends: כפתור הבדיקה והקידומת שלו
הבדיקה המובנית נמצאת תחת Marketing > Single Sends. פתחו את ה-Single Send, מצאו את Test Your Email, הזינו את כתובת הבדיקה ולחצו על Send Test Message. SendGrid דורש שולח ונושא לפני שהוא מאפשר לבצע בדיקה, ואם הנושא כולל Handlebars, צריך למלא את Test Data. בזמן השליחה, SendGrid מוסיף Test - לפני שורת הנושא.
לבדיקה אמיתית, שלחו את ה-Single Send לרשימה. הודעות Single Send נשלחות לרשימות או לפלחים, לכן צרו רשימה שבה כתובת הבדיקה היא איש הקשר היחיד, ובחרו אותה תחת Recipients. כך הכותרות, הקישור לביטול הרישום והקישורים עם המעקב יהיו אלה שמנוי מקבל. אם ביצעתם גם את בדיקת המיקום בתיבה, אפשר לצרף לרשימה גם את תיבות הדואר שלה אצל הספקים.
ה-API וה-SMTP: פקודת curl אחת
גרסה מקוצרת של דוגמת ההתחלה של SendGrid, עם כתובת הבדיקה כנמען:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer <<YOUR_API_KEY>>' \
--header 'Content-Type: application/json' \
--data '{"personalizations":[{"to":[{"email":"test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com"}],"subject":"Hello, World!"}],"content":[{"type":"text/plain","value":"Heya!"}],"from":{"email":"you@yourdomain.com","name":"Your Name"}}'
כאשר בדיקת המיקום בתיבה מופעלת, כתובות הבדיקה אצל הספקים שלכם נכנסות לאותו מערך to, והסמן נכנס ל-subject. כך, הבקשה היחידה גם מראה לכם לאיזו תיקייה Gmail, Outlook, Yahoo וספקים אחרים מעבירים את האימייל.
הדביקו את כתובת הבדיקה שלכם והשתמשו בכתובת From שאומתה על ידי SendGrid, באמצעות אימות שולח יחיד או אימות דומיין. עדיף אף יותר לשלוח את ההודעה שהאפליקציה שלכם שולחת בפועל, עם ה-HTML האמיתי שלה, כי בדיקות התוכן ידרגו את מה שנמצא בגוף ההודעה.
אם האפליקציה שלכם מתקשרת דרך SMTP, שום דבר לא משתנה מלבד אמצעי התעבורה. המארח הוא smtp.sendgrid.net, שם המשתמש הוא בדיוק המחרוזת apikey (לא המפתח שלכם), ו-SSL פועל ביציאה 465.
יש גם נקודת קצה לשליחת בדיקה, POST /v3/marketing/test/send_email. היא מקבלת עד 10 כתובות, אך פועלת רק עם Dynamic Transactional Templates. לכן, עבור רוב הודעות ה-API, קריאת Mail Send הרגילה שלמעלה היא הבדיקה האמינה.
כותרות ביטול הרישום תלויות בנתיב שבחרתם
Marketing Campaigns מנסה להוסיף כותרות List-Unsubscribe בכל פעם. הודעות שנשלחות דרך API או SMTP מקבלות אותן רק כאשר Subscription Tracking מופעל תחת Settings > Tracking. במקרה כזה SendGrid מוסיף את List-Unsubscribe עם קישור HTTPS ואת List-Unsubscribe-Post: List-Unsubscribe=One-Click.
ללא Subscription Tracking, עליכם להוסיף את הכותרות בעצמכם לבקשה:
"headers": {
"List-Unsubscribe-Post": "List-Unsubscribe=One-Click",
"List-Unsubscribe": "<mailto:unsubscribe@yourdomain.com>, <https://yourdomain.com/unsubscribe>"
}
SendGrid דורש גם את החלק mailto וגם את החלק https, ומזהיר מפני ביטול רישום של משתמש כלשהו בעקבות בקשת GET רגילה לקישור הזה. היזהרו כשאתם מעתיקים ממאמר התמיכה של SendGrid בנושא הכותרות האלה. הדוגמה השנייה בו מגדירה את List-Unsubscribe-Post לכתובות URL, וזה שגוי. הערך הוא תמיד List-Unsubscribe=One-Click. שאר הפרטים נמצאים בדף התיקון של List-Unsubscribe.
אם ההודעה היא איפוס סיסמה או קבלה ואינה כוללת כותרות של רשימת תפוצה, הדוח מסמן את קבוצת כללי השולחים בתפוצה רחבה ככזו שהבדיקה שלה דולגה, במקום להכשיל אותה. ניוזלטר שנשלח דרך API אינו מקבל את הפטור הזה.
קריאת תוצאות האימות
בחשבון ללא אימות דומיין, הנמענים רואים "via sendgrid.net" אחרי כתובת המאת שלכם, ולפי התיעוד של SendGrid, אימות דומיין מסיר את הכיתוב הזה. הדוח בודק מעבר לכיתוב. בדקו את שורות ההתאמה של DKIM ושל SPF. אם החתימה או ה-Return-Path שייכים לדומיין של SendGrid ולא לדומיין שלכם, DMARC לא יכול לעבור עבור כתובת המאת שלכם, ותוכנית הפעולה אמורה להפנות אתכם לאימות דומיין. שליחה מכתובת gmail.com או yahoo.com גרועה יותר. בדף ה-DMARC של SendGrid נאמר שגם SPF וגם DKIM נכשלים עבור כתובות כאלה, והמסוף עצמו מזהיר שהודעות כאלה עלולות להיכשל בבדיקת DMARC.
אימות הדומיין נמצא תחת Settings > Sender Authentication. כאשר האבטחה האוטומטית מופעלת, וזוהי ברירת המחדל, SendGrid מספקת ארבע רשומות:
- רשומת CNAME ב-
em[0000], שמכסה את SPF והופכת ל-Return-Path שלכם; - רשומות CNAME ב-
s1._domainkeyוב-s2._domainkeyעבור DKIM; - רשומת TXT ב-
_dmarcעםv=DMARC1; p=none;.
ערכים לדוגמה. העתיקו את הערכים האמיתיים מהחשבון שלכם.
| שם | סוג | ערך | למה היא משמשת | העתיקו |
|---|---|---|---|---|
| אבטחה אוטומטית מופעלת (ברירת המחדל) | ||||
| em[0000] | CNAME | היעד מהחשבון שלכם | SPF וה-Return-Path. | |
| s1. | CNAME | היעד מהחשבון שלכם | DKIM. | |
| s2. | CNAME | היעד מהחשבון שלכם | DKIM, הסלקטור השני. | |
| _dmarc | TXT | v= | DMARC. | |
| אבטחה אוטומטית מושבתת | ||||
| em[0000] | MX | המארח מהחשבון שלכם | ה-Return-Path. | |
| em[0000] | TXT | v= | SPF, שעליו אתם מתחזקים בעצמכם. | |
| m1. | TXT | המפתח מהחשבון שלכם | DKIM. | |
כאשר האבטחה האוטומטית מושבתת, תקבלו רשומת MX ורשומת SPF מסוג TXT (v=spf1 include:sendgrid.net ~all) ב-em[0000], וכן רשומת DKIM מסוג TXT ב-m1._domainkey, ואת רשומת ה-SPF תתחזקו בעצמכם. אם ספק ה-DNS שלכם דוחה שמות CNAME שמכילים _, זו האפשרות היחידה. ואם שירות אחר כבר משתמש בסלקטור s, SendGrid מאפשרת לכם לבחור סלקטור מותאם אישית. בדקו את התוצאה באמצעות בודק DKIM (הסלקטור s1) ובאמצעות בודק SPF, שסופר גם חיפושי DNS אם רשומת ה-SPF שלכם מתחילה להיות עמוסה.
קישורים, כתובות IP ושאר הדוח
מעקב אחר קליקים משכתב כל קישור. אם טקסט הקישור הוא כתובת URL, הכתובת המוצגת והיעד האמיתי כבר אינם תואמים, ובדיקת אי-ההתאמה בין קישורים בדוח תסמן זאת. דף המסירוּת של SendGrid מציין את אותה בעיה. השתמשו במילים כטקסט הקישור, או הגדירו מיתוג קישורים כך שהקישורים שבמעקב יעברו דרך הדומיין שלכם, שחייב להתאים לדומיין שבשדה From.
התוכניות Trial ו-Essentials שולחות ממאגרי IP משותפים. לפי SendGrid, כתובות ה-IP במאגרים האלה עשויות להשתנות ללא הודעה אם המוניטין שלכם משתנה, ולכן הופעה של אחת מהן ברשימת חסימה נוגעת לכל המשתמשים באותו מאגר. בודק רשימות החסימה מאפשר לכם לבדוק שוב את כתובת ה-IP בהמשך. אפשר להגדיר DNS הפוך רק עם כתובת IP ייעודית, שכלולה ב-Pro Email API וב-Advanced Marketing Campaigns.
לקריאה נוספת בתיעוד של SendGrid
בדיקת אימיילwww.twilio.com ↗אימות דומייןwww.twilio.com ↗List-Unsubscribewww.twilio.com ↗מיתוג קישוריםwww.twilio.com ↗שאלות
למה האימיילים שלי מוצגים עם "via sendgrid.net"?
SendGrid עדיין לא אימת את הדומיין שממנו אתם שולחים. הגדירו אימות דומיין תחת Settings > Sender Authentication, ולפי התיעוד של SendGrid, התג ייעלם.
הדוח מציין שחסר List-Unsubscribe, אבל אני משתמש ב-SendGrid. למה?
כנראה אתם שולחים דרך ה-API או SMTP כאשר Subscription Tracking כבוי. הפעילו אותו תחת Settings > Tracking, או הוסיפו בעצמכם את שתי הכותרות באובייקט headers.
אפשר להשתמש ב-"Send Test Message" של SendGrid לצורך הבדיקה?
כן, ההודעה מגיעה לכתובת הבדיקה. רק זכרו שהנושא מגיע עם Test - בתחילתו. כדי לבדוק את הכותרות בדיוק כפי שהמנויים מקבלים אותן, עדיף להשתמש ב-Single Send לרשימה עם איש קשר אחד.
אפשר להשתמש בנקודת הקצה של API לשליחת בדיקה במקום Mail Send?
רק עבור Dynamic Transactional Templates, שזה כל מה שנקודת הקצה /v3/marketing/test/send_email מקבלת. אפשר לשלוח באמצעותה לעד 10 כתובות. כל השאר עובר דרך /v3/mail/send.
איזה selector צריך להזין בבודק DKIM?
כאשר automated security מופעל, בדקו את s1 ואת s2. כאשר הוא כבוי, ה-selector הוא m1. אם בחרתם selector מותאם אישית במהלך ההגדרה, השתמשו בו במקום זאת.