จดหมายข่าวที่สร้างใน 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 Sends ส่งไปยังรายการหรือเซกเมนต์ ให้สร้างรายการที่มีที่อยู่ทดสอบเป็นผู้ติดต่อเพียงรายเดียว แล้วเลือกที่ 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 และผู้ให้บริการอื่นๆ นำอีเมลไปไว้ในโฟลเดอร์ใด
ใส่ที่อยู่ทดสอบของคุณเองและที่อยู่ผู้ส่งที่ SendGrid ยืนยันแล้ว ผ่านการยืนยันผู้ส่งรายเดียวหรือการยืนยันโดเมน ทางที่ดีกว่าคือส่งข้อความจริงที่แอปของคุณส่งพร้อม HTML จริง เพราะการตรวจสอบเนื้อหาจะให้คะแนนสิ่งที่อยู่ในเนื้อหาอีเมล
หากแอปพลิเคชันของคุณสื่อสารผ่าน SMTP จะมีเพียงวิธีการส่งที่เปลี่ยนไป โฮสต์คือ smtp.sendgrid.net ชื่อผู้ใช้คือสตริง apikey ตามตัวอักษรจริงๆ (ไม่ใช่คีย์ของคุณ) และ SSL ทำงานบนพอร์ต 465
นอกจากนี้ยังมี endpoint สำหรับส่งอีเมลทดสอบคือ 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" ต่อท้ายที่อยู่ From ของคุณ และเอกสารของ SendGrid ระบุว่าการตรวจสอบสิทธิ์โดเมนจะนำข้อความนี้ออก รายงานไม่ได้ตรวจสอบแค่ป้ายกำกับนี้ ให้ดูบรรทัดการจัดแนว DKIM และ SPF หากลายเซ็นหรือ Return-Path เป็นของโดเมน SendGrid แทนที่จะเป็นโดเมนของคุณ DMARC จะไม่ผ่านสำหรับที่อยู่ From ของคุณ และแผนควรแนะนำให้คุณตั้งค่าการตรวจสอบสิทธิ์โดเมน การส่งจากที่อยู่ 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 ซึ่งเป็น selector ตัวที่สอง | |
| _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 ที่มี _ นี่เป็นตัวเลือกเดียว และหากบริการอื่นใช้ selector s อยู่แล้ว SendGrid ให้คุณเลือก selector แบบกำหนดเองได้ ตรวจสอบผลด้วย เครื่องมือตรวจสอบ DKIM (selector s1) และเครื่องมือตรวจสอบ SPF ซึ่งจะนับจำนวนการค้นหา DNS ด้วย หากระเบียน SPF ของคุณเริ่มมีข้อมูลมากเกินไป
ลิงก์, IP และส่วนอื่นๆ ของรายงาน
การติดตามการคลิกจะเขียนลิงก์ทุกลิงก์ใหม่ หากข้อความลิงก์เป็น URL ที่อยู่ที่แสดงกับปลายทางจริงจะไม่ตรงกัน และการตรวจสอบลิงก์ไม่ตรงกันในรายงานจะระบุปัญหานี้ หน้าคำแนะนำด้านการส่งอีเมลถึงผู้รับของ SendGrid ก็กล่าวถึงปัญหาเดียวกัน ใช้คำเป็นข้อความลิงก์ หรือตั้งค่าการสร้างแบรนด์ลิงก์เพื่อให้ลิงก์ที่ติดตามผ่านโดเมนของคุณเอง ซึ่งต้องตรงกับโดเมน From ของคุณ
แพ็กเกจ Trial และ Essentials ส่งอีเมลจากกลุ่ม IP ที่ใช้ร่วมกัน ซึ่ง SendGrid ระบุว่าสามารถเปลี่ยนแปลงได้โดยไม่แจ้งให้ทราบหากชื่อเสียงของคุณเปลี่ยนไป ดังนั้นหาก IP ใด IP หนึ่งติดรายการบล็อก ทุกคนในกลุ่มนั้นจะได้รับผลกระทบ คุณสามารถใช้ เครื่องมือตรวจสอบรายการบล็อก เพื่อตรวจสอบ IP นั้นอีกครั้งในภายหลัง Reverse 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 endpoint สำหรับส่งทดสอบแทน Mail Send ได้ไหม?
ได้เฉพาะ Dynamic Transactional Templates ซึ่งเป็นสิ่งเดียวที่ /v3/marketing/test/send_email รองรับ โดยส่งได้สูงสุด 10 ที่อยู่ ส่วนอื่นทั้งหมดต้องส่งผ่าน /v3/mail/send
ต้องป้อน selector ใดในเครื่องมือตรวจสอบ DKIM?
เมื่อเปิดการรักษาความปลอดภัยอัตโนมัติ ให้ตรวจสอบ s1 และ s2 เมื่อปิด ตัว selector คือ m1 หากคุณเลือก selector แบบกำหนดเองระหว่างการตั้งค่า ให้ใช้ selector นั้นแทน