Розсилка, створена в 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 та інші провайдери помістили лист.
Вставте власну тестову адресу та адресу 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, отримують їх лише тоді, коли в розділі Settings > Tracking увімкнено Subscription 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 ще гірше. На сторінці SendGrid про DMARC зазначено, що для них не проходять перевірку і 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-адресу. Зворотний 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.
Який селектор потрібно ввести в засіб перевірки DKIM?
Якщо автоматичний захист увімкнено, перевірте s1 і s2. Якщо його вимкнено, селектором буде m1. Якщо під час налаштування ви вибрали власний селектор, використовуйте його.