Надішліть одне повідомлення на одноразову адресу, і для нього буде виконано 42 перевірки. На цій сторінці наведено їх усі: що перевіряє кожна з них, скільки балів вона знімає з вашої оцінки в разі невдачі та з якого розділу стандарту походить.
Тут немає наших думок, поданих як правила. Якщо перевірка забезпечує виконання вимоги стандарту, під нею наведено цитату з цього стандарту. Якщо вона натомість забезпечує виконання вимоги Google або Yahoo, наведено посилання на їхню сторінку. Якщо це наше власне судження, це зазначено.
Автентифікація
Чи може сервер-одержувач підтвердити, що повідомлення надійшло звідти, звідки заявлено. Це та половина доставлюваності, яка повністю залежить від DNS, і та половина, яку Gmail і Yahoo зробили обов’язковою для масових відправників у 2024 році.
Ланцюжок ARC auth.arc
ARC зберігає результат автентифікації під час пересилання через проміжний сервер. Без нього список розсилки, який додає нижній колонтитул, порушує ваш підпис DKIM, і переслана копія не проходить DMARC на боці кінцевого одержувача.
У разі невдачі: Відправнику нічого робити не потрібно. Це має значення, якщо ви керуєте списком розсилки або сервером пересилання, і пояснює, чому деякі ваші листи не проходять DMARC після того, як хтось їх пересилає.
Знімає до 2 балів зі 100 у нашій оцінці.
RFC 7960 §1 — Introduction
DMARC with restrictive policies causes problems for many Mailing Lists.
RFC 8617 §2.1 — Evidence
In ARC's situation, the "evidence" is a message's authentication assessment at any point along the delivery path between origination and final delivery.
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Підпис DKIM auth.dkim
DKIM підписує частини повідомлення приватним ключем і публікує відкритий ключ у DNS. Ми перевіряємо кожен підпис у повідомленні та повідомляємо домен підпису, селектор і довжину ключа.
У разі невдачі: Увімкніть DKIM на своїй платформі надсилання та опублікуйте наданий нею ключ. Використовуйте 2048 бітів: 1024 усе ще проходить перевірку, але такий ключ можна зламати, і він уже не безпечний.
Знімає до 18 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
RFC 6376 §3.5 — The DKIM-Signature Header Field
The signature of the email is stored in the DKIM-Signature header field.
RFC 6376 §6.1 — Extract Signatures from the Message
Verifiers MUST NOT attribute ultimate meaning to the order of multiple DKIM-Signature header fields.
RFC 8301 §3.1 — Signing and Verification Algorithms
rsa-sha1 MUST NOT be used for signing or verifying.
RFC 8463 §6 — Transition Considerations
For backward compatibility, signers can add multiple signatures that use old and new signing algorithms.
Google — Set up DKIM
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Узгодження DKIM auth.dkim_alignment
Дійсного підпису недостатньо для DMARC. Домен підпису має збігатися з доменом у заголовку From, точно або за організаційним доменом залежно від опублікованої вами політики.
У разі невдачі: Підписуйте власним доменом, а не доменом своєї платформи. Більшість платформ підтримують це й називають його власним або автентифікованим доменом надсилання.
Знімає до 10 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
RFC 9989 §4.4.1 — DKIM-Authenticated Identifiers
A single email can contain multiple DKIM signatures, and it is considered to produce a DMARC "pass" result if any DKIM-Authenticated Identifier aligns with the Author Domain.
Google — Set up DMARC
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Результат DMARC auth.dmarc
DMARC пов’язує SPF і DKIM із доменом, який бачить ваш читач, і вказує одержувачам, що робити, коли жоден із них не узгоджений. Ми повідомляємо опубліковану політику та чи відповідає їй це повідомлення.
У разі невдачі: Опублікуйте запис DMARC. Почніть із p=none, переглядайте звіти протягом кількох тижнів, а потім перейдіть до карантину, коли знатимете, хто ще надсилає пошту від вашого імені.
Знімає до 14 балів зі 100 у нашій оцінці.
RFC 9989 §5.3.5 — Determine DMARC "Pass" or "Fail"
If no Authenticated Identifiers exist for the domain, or none of the Authenticated Identifiers align with the Author Domain, the message is considered to fail the DMARC mechanism check.
RFC 9989 §4.7 — DMARC Policy Record Format
DMARC Policy Records follow the extensible "tag-value" syntax for DNS-based key records defined in DKIM [RFC6376].
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Yahoo — Sender requirements and recommendations
Sender ID auth.sender_id
Та сама перевірка, що й SPF, але виконана для домену в заголовку From, а не в конверті. Вона відповідає на інше запитання: чи дозволяє домен, який бачить ваш читач, серверу, що надіслав повідомлення, робити це. Повідомлення може пройти SPF для свого конверта, тоді як видимий домен не підтверджує нікого.
У разі невдачі: Опублікуйте SPF для домену в заголовку From, а не лише для домену повернення, який надала вам платформа.
Знімає до 5 балів зі 100 у нашій оцінці і до 0.5 із 10 у класичній оцінці.
RFC 4406 §4 — Record Selection
After the above steps, there should be one record remaining and evaluation can proceed.
SPF auth.spf
SPF — це запис DNS із переліком серверів, які можуть надсилати пошту від імені вашого домену. Сервер-одержувач бере адресу з конверта, знаходить запис цього домену та перевіряє, чи входить до нього IP підключення. Ми повідомляємо результат і кількість пошуків DNS, потрібних для обробки запису, оскільки обчислення припиняється після десяти, а все, що перевищує цей ліміт, є постійною помилкою, а не успішною перевіркою.
У разі невдачі: Опублікуйте запис, у якому вказано вашу платформу надсилання й нічого більше. Якщо ваш запис наближається до ліміту в десять пошуків, розгорніть директиви include, які ви не використовуєте (запис, який успішно проходить перевірку сьогодні, почне повертати помилку в день, коли провайдер додасть власну директиву include).
Знімає до 18 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
RFC 7208 §4.6.4 — DNS Lookup Limits
SPF implementations MUST limit the total number of those terms to 10 during SPF evaluation, to avoid unreasonable load on the DNS. If this limit is exceeded, the implementation MUST return "permerror".
RFC 7208 §2.6 — Results of Evaluation
Section 4 defines check_host(), a model function definition that uses the inputs defined above and the sender's policy published in the DNS to reach a conclusion about client authorization.
Google — Set up SPF
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Узгодження SPF auth.spf_alignment
Чи збігається адреса повернення з адресою From, яку бачить читач. SPF авторизує конверт, а DMARC враховує цю авторизацію лише тоді, коли вони узгоджені.
У разі невдачі: Попросіть свою платформу надсилання надати піддомен повернення у вашому власному домені. Якщо ваш DKIM уже узгоджений, це не терміново, але без цього у вас не буде резервного варіанта, коли DKIM порушиться під час передавання.
Знімає до 5 балів зі 100 у нашій оцінці і до 0.5 із 10 у класичній оцінці.
RFC 9989 §4.4.2 — SPF-Authenticated Identifiers
Only an SPF-Authenticated Identifier that has Identifier Alignment with the Author Domain is enough to validate the authorized use of the Author Domain.
RFC 9989 §5.3.5 — Determine DMARC "Pass" or "Fail"
If one or more of the Authenticated Identifiers align with the Author Domain, the message is considered to pass the DMARC mechanism check.
Google — Set up DMARC
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Інфраструктура та репутація
Сервер і адреса, з яких було надіслано повідомлення, і те, що решта інтернету вже про них думає.
Ім’я хоста відправника перетворюється на адресу infra.a_record
Чи має ім’я хоста, оголошене під час HELO, хоча б якийсь запис адреси.
У разі невдачі: Опублікуйте запис A для імені, яке оголошує ваш сервер.
Знімає до 5 балів зі 100 у нашій оцінці і до 3 із 10 у класичній оцінці.
RFC 5321 §5.1 — Locating the Target Host
If an empty list of MXs is returned, the address is treated as if it was associated with an implicit MX RR, with a preference of 0, pointing to that host.
Google — Set up MX records
Блок-листи infra.dnsbl
Чи внесено IP відправника до будь-якого з блок-листів, які одержувачі фактично перевіряють. Наш перелік перевіряється за власною документованою тестовою точкою кожної зони, а не формується за результатами вебпошуку, оскільки непрацююча зона відповідає NXDOMAIN, що сприймається як «чисто».
У разі невдачі: Виконайте процедуру вилучення зі списку на сайті оператора списку. Наявність у списку великої зони повністю блокує пошту, тому усуньте її до всього іншого на сторінці.
Знімає до 25 балів зі 100 у нашій оцінці і до 3 із 10 у класичній оцінці.
RFC 5782 §2.1 — IP Address DNSxL
Each IPv4 address listed in the DNSxL has a corresponding DNS entry.
RFC 5782 §5 — Test and Contact Addresses
IPv4-based DNSxLs MUST contain an entry for 127.0.0.2 for testing purposes.
Google — Postmaster Tools: reputation and delivery errors
Google — Email sender guidelines
Ім’я HELO infra.helo
Ім’я, яким сервер відправника представляється на початку SMTP-сеансу. Воно має бути повним доменним ім’ям, яке перетворюється на адресу.
У разі невдачі: Задайте як ім’я хоста вашого поштового сервера реальне ім’я у вашому домені, а не ідентифікатор контейнера чи внутрішнє ім’я.
Знімає до 5 балів зі 100 у нашій оцінці.
RFC 5321 §4.1.1.1 — Extended HELLO (EHLO) or HELLO (HELO)
The argument clause contains the fully-qualified domain name of the SMTP client, if one is available.
Google — Email sender guidelines
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Запис MX infra.mx
Чи може домен у вашому заголовку From отримувати пошту. Без нього відповіді та повідомлення про недоставлення не мають куди надходити, а фільтри вважають нездатність домену відправника отримувати пошту поганою ознакою.
У разі невдачі: Опублікуйте запис MX для домену, з якого ви надсилаєте пошту, навіть якщо він лише спрямовує її до поштової скриньки, яку ви перевіряєте раз на місяць.
Знімає до 5 балів зі 100 у нашій оцінці і до 3 із 10 у класичній оцінці.
RFC 5321 §5.1 — Locating the Target Host
The lookup first attempts to locate an MX record associated with the name.
Google — Set up MX records
Зворотний DNS infra.rdns
Чи перетворюється IP відправника назад на ім’я хоста і чи перетворюється це ім’я хоста на той самий IP у прямому напрямку. Важливий саме повний цикл: PTR, що вказує будь-куди, налаштувати легко, а узгоджена пара свідчить, що адреса належить вам.
У разі невдачі: Попросіть власника IP налаштувати PTR на ім’я, яке ви контролюєте, і переконайтеся, що це ім’я має запис A, який вказує назад.
Знімає до 12 балів зі 100 у нашій оцінці і до 1.5 із 10 у класичній оцінці.
RFC 1912 §2.1 — Inconsistent, Missing, or Bad Data
Make sure your PTR and A records match. For every IP address, there should be a matching PTR record in the in-addr.arpa domain.
Google — Email sender guidelines
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Шифрування передавання infra.tls
Чи надійшло повідомлення через TLS і з яким шифром. Усі сучасні системи узгоджують його; надходження повідомлення у відкритому вигляді дещо говорить про конфігурацію відправника.
У разі невдачі: Увімкніть STARTTLS на сервері відправника. Усі поширені платформи вже це підтримують, тому збій тут зазвичай означає наявність у маршруті самостійно розміщеного ретранслятора.
Знімає до 5 балів зі 100 у нашій оцінці.
RFC 3207 §2 — STARTTLS Extension
The STARTTLS extension to SMTP is laid out as follows:
Google — Send email over a secure TLS connection
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Антиспам-рушії
Як незалежні фільтри вмісту оцінюють повідомлення. Використовуються два рушії, а не один, оскільки оцінка одного рушія є думкою лише цього рушія.
ШІ-суддя spam.ai_judge
Модель оцінює, як сучасний фільтр на основі машинного навчання обробив би повідомлення, виходячи з технічних результатів і вимірювань вмісту. Вона бачить факти, а не текст повідомлення.
У разі невдачі: Саме по собі це лише деталі. Його оцінка враховується в об’єднаному вердикті нижче.
Наведено для докладної інформації. Ніколи не впливає на оцінку.
Об’єднаний вердикт spam.panel
Одне число від рушіїв, які відповіли, з вагами, щоб найсильніший результат не було просто нівельовано усередненням. SpamAssassin і Postmark враховуються як один голос, оскільки вони мають спільну базу правил.
У разі невдачі: Опрацюйте окремі результати. Цей рядок змінюється разом із ними.
Знімає до 25 балів зі 100 у нашій оцінці.
Google — Why Gmail marks messages as spam
How this score is calculated
Postmark SpamCheck spam.postmark
Третя думка, типово вимкнена. Його кінцева точка приймає все повідомлення, і ми не можемо приховати жодну його частину, не зруйнувавши те, що вимірюється, тому ввімкнення означає згоду на копіювання кожного перевіреного повідомлення третій стороні.
У разі невдачі: Нічого робити не потрібно. Коли перевірку вимкнено, вона повідомляє, що її вимкнено, і це не те саме, що успішний результат.
Наведено для докладної інформації. Ніколи не впливає на оцінку.
Rspamd spam.rspamd
Другий, незалежно розроблений фільтр. Він досить часто не погоджується зі SpamAssassin, щоб його варто було перевіряти, саме тому він тут.
У разі невдачі: Лише деталі. Оцінка цього рушія враховується в об’єднаному вердикті, а не оцінюється окремо.
Наведено для докладної інформації. Ніколи не впливає на оцінку.
SpamAssassin spam.spamassassin
Класичний фільтр на основі правил, який досі є рушієм більшості інструментів тестування електронної пошти. Кожне спрацьоване правило наведено з його вагою.
У разі невдачі: Перегляньте спрацьовані правила, а не загальний результат. Більшість із них легко усунути, коли видно, які саме правила спрацювали.
Знімає до 3 із 10 у класичній оцінці.
Google — Why Gmail marks messages as spam
Apache SpamAssassin — rule documentation
Вміст
Саме повідомлення: його структура, посилання, зображення та все, що читає фільтр перед ухваленням рішення.
Альтернативний текст зображень content.alt_attributes
Чи мають зображення атрибути alt. Поштові клієнти за замовчуванням блокують віддалені зображення, тому протягом перших кількох секунд альтернативний текст є вашим повідомленням.
У разі невдачі: Пишіть альтернативний текст, який передає зміст, і ніколи не залишайте основне зображення без нього.
Знімає до 4 балів зі 100 у нашій оцінці і до 0.5 із 10 у класичній оцінці.
Google — Email sender guidelines
Доступність посилань content.broken_links
Чи відкриваються посилання в повідомленні. Неробоче посилання в розсилці одразу підриває довіру, і фільтри також його помічають.
У разі невдачі: Виправте або видаліть їх. Також перевірте домен відстеження: якщо термін його реєстрації минув, усі посилання перестають працювати одночасно.
Знімає до 5 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
Google — Why Gmail marks messages as spam
Script та iframe content.forbidden_tags
Чи містить HTML теги, які не виконає жоден поштовий клієнт. У найкращому разі їх видаляють, а в найгіршому вважають ознакою спроби обходу.
У разі невдачі: Видаліть script, iframe, object і embed. Усе інтерактивне має бути доступне за посиланням.
Знімає до 10 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
Google — Email sender guidelines
Баланс тексту й HTML content.html_text_ratio
Скільки в повідомленні розмітки порівняно з читабельним текстом. Сторінка розмітки навколо одного речення має структуру, яку розпізнають фільтри.
У разі невдачі: Напишіть текстову частину, що передає те саме, що й HTML, а не заповнювач.
Знімає до 3 балів зі 100 у нашій оцінці і до 0.3 із 10 у класичній оцінці.
RFC 2046 §5.1.4 — Alternative Subtype
Systems should recognize that the content of the various parts are interchangeable.
Google — Why Gmail marks messages as spam
Текстова й HTML-частини content.html_version
Чи містить повідомлення альтернативу у вигляді звичайного тексту разом із HTML. Деякі фільтри враховують її відсутність, і вона потрібна кожній програмі зчитування з екрана.
У разі невдачі: Надсилайте multipart/alternative зі справжньою текстовою версією, а не порожньою частиною чи рядком із пропозицією переглянути її в браузері.
Знімає до 5 балів зі 100 у нашій оцінці.
RFC 2046 §5.1.4 — Alternative Subtype
The "multipart/alternative" type is syntactically identical to "multipart/mixed", but the semantics are different. In particular, each of the body parts is an "alternative" version of the same information.
Google — Email sender guidelines
Розмір HTML content.html_weight
Наскільки велика HTML-частина. Gmail обрізає повідомлення розміром понад приблизно 102 КБ і ховає решту за посиланням, разом із нижнім колонтитулом для відписки.
У разі невдачі: Скоротіть вбудований CSS і повторювані блоки стилів (більшість шаблонів займають третину ліміту після видалення невикористовуваних правил).
Знімає до 3 балів зі 100 у нашій оцінці і до 0.3 із 10 у класичній оцінці.
Google — Email sender guidelines
Розмір зображень content.images_weight
Загальний розмір зображень, які завантажує повідомлення. Великі зображення сповільнюють завантаження повідомлення на телефоні, а листи лише із зображеннями мають структуру, яку фільтри вважають підозрілою.
У разі невдачі: Стисніть їх і переконайтеся, що повідомлення залишається зрозумілим із вимкненими зображеннями.
Знімає до 3 балів зі 100 у нашій оцінці і до 0.3 із 10 у класичній оцінці.
Google — Email sender guidelines
Відповідність тексту посилання й адреси content.link_mismatch
Порівнює домен у тексті з кінцевим сайтом після HTTP-переходів. Проміжний домен відстеження сам по собі не доводить обман.
У разі невдачі: Вкажіть домен призначення або опишіть дію. Недоступний кінцевий сайт залишається неперевіреним.
Знімає до 3 балів зі 100 у нашій оцінці.
Google — Email sender guidelines
Репутація посилань content.malicious_links
Перевіряє URL за списками загроз. Збіг не означає, що кожен одержувач заблокує лист.
У разі невдачі: Перевірте позначені адреси та замініть або видаліть небезпечні посилання. Історичний запис сам по собі не доводить поточне зараження.
Знімає до 40 балів зі 100 у нашій оцінці.
Google — Why Gmail marks messages as spam
Сканування вкладень content.malware
Чи містять вкладення відоме шкідливе програмне забезпечення. У розгортаннях, де сканер вимкнено, цей пункт повідомляє, що сканування не виконувалося, а не про відсутність загроз.
У разі невдачі: Якщо ця перевірка спрацює, припиніть надсилання та з'ясуйте, що знаходиться на машині, яка створила повідомлення.
Знімає до 60 балів зі 100 у нашій оцінці.
Google — Why Gmail marks messages as spam
ClamAV — how detection works
Тема листа content.subject
Довжина, використання великих літер і шаблони, які оцінюють фільтри. Ми вимірюємо декодовану тему, тому рядок кирилицею або CJK оцінюється як текст, а не як його кодування.
У разі невдачі: Обмежте її приблизно 60 символами, приберіть великі літери та знаки оклику.
Знімає до 3 балів зі 100 у нашій оцінці.
RFC 5322 §2.2 — Header Fields
Header fields are lines beginning with a field name, followed by a colon (":"), followed by a field body, and terminated by CRLF.
RFC 2047 §2 — Syntax of encoded-words
An 'encoded-word' is defined by the following ABNF grammar.
Google — Why Gmail marks messages as spam
Скорочені посилання content.url_shortener
Чи проходять посилання через загальнодоступний сервіс скорочення. Такі сервіси приховують адресу призначення, а фільтри навчені не довіряти саме цьому.
У разі невдачі: Використовуйте посилання на власний домен або домен відстеження вашої платформи на своєму піддомені.
Знімає до 5 балів зі 100 у нашій оцінці і до 0.5 із 10 у класичній оцінці.
Google — Why Gmail marks messages as spam
Правила для масових відправників
Вимоги, які Gmail і Yahoo публікують для всіх, хто надсилає великі обсяги повідомлень. Вони застосовуються до розсилок і пропускаються для повідомлень, які не схожі на розсилку.
Політику DMARC опубліковано compliance.dmarc_present
Чи публікує домен у полі From запис DMARC взагалі, окремо від того, чи пройшло це повідомлення перевірку. Gmail і Yahoo вимагають його від масових відправників.
У разі невдачі: Опублікуйте запис. p=none достатньо для виконання вимоги, і це надасть вам звіти для подальшої роботи.
Знімає до 6 балів зі 100 у нашій оцінці.
RFC 9989 §4.7 — DMARC Policy Record Format
If this tag is not present in an otherwise syntactically valid DMARC Policy Record, then the record is treated as if it included "p=none".
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Yahoo — Sender requirements and recommendations
List-Unsubscribe compliance.list_unsubscribe
Чи містить повідомлення заголовок для відписки, який може обробити поштовий клієнт. Gmail і Yahoo вимагають його від масових відправників, а його відсутність враховується під час фільтрації незалежно від усього іншого. Це правило стосується розсилок. Лист, у якому одержувача просять підтвердити підписку або повідомляють, що її оформлено, надсилається одній людині щодо дії, яку вона щойно виконала; CAN-SPAM називає це транзакційним повідомленням або повідомленням у межах відносин, і ні Gmail, ні Yahoo не вимагають у ньому заголовка для відписки. Тому ця перевірка спочатку аналізує лист. За підтвердження підписки, вітальний лист, транзакційний лист або сповіщення без заголовків списку штрафні бали не нараховуються, а у звіті зазначається, за що було прийнято лист. Вітальний лист, доповнений пропозиціями, фактично є першим випуском розсилки; без заголовків списку перевірка не може розрізнити ці два випадки й не нараховує штрафні бали на основі припущення. Якщо лист містить List-Unsubscribe або List-Id, ви самі оголосили його листом розсилки, і перевірка виконується так само, як і раніше.
У разі невдачі: Додайте заголовок List-Unsubscribe з URI, що використовує HTTPS. Це підтримує кожна платформа для надсилання.
Знімає до 10 балів зі 100 у нашій оцінці і до 1 із 10 у класичній оцінці.
RFC 2369 §3.2 — List-Unsubscribe
The List-Unsubscribe field describes the command (preferably using mail) to directly unsubscribe the user (removing them from the list).
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Yahoo — Sender requirements and recommendations
Відписка одним кліком compliance.one_click_unsubscribe
Суворіша форма: URI, що використовує HTTPS, заголовок "List-Unsubscribe-Post" і один дійсний підпис DKIM, що охоплює обидва заголовки. Потрібні всі три складові, інакше одержувач не показує кнопку. Як і перевірка List-Unsubscribe, ця перевірка застосовується до розсилок, а не до підтвердження чи вітального листа.
У разі невдачі: Зазвичай пропускають підпис: платформи підписують "List-Unsubscribe" і забувають про "List-Unsubscribe-Post". Назви обох заголовків мають бути вказані в тегу h= того самого підпису.
Знімає до 8 балів зі 100 у нашій оцінці.
RFC 8058 §4 — Additional Requirements
The List-Unsubscribe and List-Unsubscribe-Post headers MUST be covered by the signature and included in the "h=" tag of a valid DKIM-Signature header field.
RFC 8058 §3.1 — Mail Senders
The List-Unsubscribe header field MUST contain one HTTPS URI.
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Yahoo — Sender requirements and recommendations
TLS для масових листів compliance.tls_required
Чи надійшло повідомлення в зашифрованому вигляді. Охоплюється перевіркою інфраструктури, якщо її вже було виконано.
У разі невдачі: Дивіться перевірку шифрування передавання вище.
Знімає до 5 балів зі 100 у нашій оцінці.
Google — Send email over a secure TLS connection
Google — Sender guidelines FAQ: rules for 5,000+ messages a day
Рекомендації
Варто виконати, але ніколи не впливає на оцінку. Ніщо в цьому розділі не може знімати бали, і це продуктове рішення забезпечується тестами.
BIMI advisory.bimi
Чи публікує домен запис BIMI, який додає логотип поруч із вашими повідомленнями в деяких клієнтах. Спочатку потрібна примусова політика DMARC, а також платний сертифікат підтвердженого знака.
У разі невдачі: Варто зробити, коли DMARC уже налаштовано на карантин або відхилення, а обсяг виправдовує витрати на сертифікат.
Рекомендація. Нічого не знімає.
BIMI — draft specification, not yet an RFC
Вік і довжина ключа DKIM advisory.dkim_key_rotation
Довжина ключа підпису та час його використання. З кожним роком короткі ключі стає дешевше атакувати в автономному режимі.
У разі невдачі: Перейдіть на 2048 біт і виконуйте ротацію за розкладом. Опублікуйте новий селектор, перемкніть підписування на нього, а потім виведіть старий з використання.
Рекомендація. Нічого не знімає.
RFC 8301 §3.2 — Key Sizes
Since short RSA keys more easily succumb to off-line attacks, Signers MUST use RSA keys of at least 1024 bits for all keys. Signers SHOULD use RSA keys of at least 2048 bits.
Google — Set up DKIM
Доставка звітів DMARC advisory.dmarc_reporting
Чи справді адреси у вашому записі DMARC щось отримуватимуть. Якщо адреса для звітів перебуває за межами вашого домену, RFC 9990 вимагає, щоб цей домен спочатку опублікував власний дозвіл у вигляді запису TXT за адресою your-domain._report._dmarc.their-domain. Без нього одержувач відкидає адресу: без повернення повідомлення, без помилки, без звіту. Це звичайне налаштування, а не виняткове, оскільки адреса зазвичай належить постачальнику послуг моніторингу або розміщена у вашому основному домені, тоді як політика міститься в піддомені для надсилання. Те саме правило поширюється на звіти про помилки, причому RFC 9991 вказує на ту саму процедуру для тега ruf. Ми шукаємо ті самі записи, які шукав би одержувач, і показуємо імена, які ми запитували.
У разі невдачі: Попросіть того, хто керує доменом призначення, опублікувати запис TXT зі значенням v=DMARC1 за іменем, указаним у виявленій проблемі. Постачальники послуг моніторингу зазвичай роблять це за вас після додавання домену до їхнього облікового запису, тому, якщо запису немає, домен, імовірно, так і не було додано з їхнього боку. Якщо натомість звіти надходять до вашого власного домену, нічого робити не потрібно.
Рекомендація. Нічого не знімає.
RFC 9990 §4 — Verifying External Destinations
When a Mail Receiver discovers a DMARC Policy Record in the DNS, and the Organizational Domain at which that record was discovered is not identical to the Organizational Domain of the host part of the authority component of a [RFC3986] specified in the "rua" tag, the following verification steps MUST be taken:
RFC 9990 §4 — Verifying External Destinations
Where the above algorithm fails to confirm that the external reporting was authorized by the Report Consumer, the URI MUST be ignored by the Mail Receiver generating the report.
RFC 9991 §5 — Verifying External Destinations
In case of external destinations, a Mail Receiver who generates failure reports MUST use the Verifying External Destinations procedure described in Section 4 of [RFC9990], substituting the "ruf" tag where the "rua" tag appears in that procedure.
Google — Set up DMARC
DNSSEC advisory.dnssec
Чи підписано домен. SPF, DKIM і DMARC зберігаються в DNS, тому зловмисник, який може підробити відповіді DNS, може підробити всі три.
У разі невдачі: Увімкніть його у свого реєстратора. Зазвичай це один перемикач, а решту виконує реєстратор.
Рекомендація. Нічого не знімає.
RFC 4033 §2 — Definitions of Important DNSSEC Terms
Authentication Chain: An alternating sequence of DNS public key (DNSKEY) RRsets and Delegation Signer (DS) RRsets
MTA-STS advisory.mta_sts
Чи публікує домен політику, яка вказує іншим серверам відмовлятися від незашифрованого доставлення вам. Вона захищає пошту, надіслану вам, а не пошту, яку надсилаєте ви.
У разі невдачі: Опублікуйте запис TXT і файл політики через HTTPS (це кілька годин роботи, і це усуває атаку зі зниженням рівня захисту).
Рекомендація. Нічого не знімає.
RFC 8461 §3 — Policy Discovery
To discover if a recipient domain implements MTA-STS, a sender need only resolve a single TXT record.
Довжина шляху повернення advisory.return_path_length
Наскільки довгою є адреса для повернень. RFC 5321 зобов’язує сервер-одержувач приймати 64 октети перед @, а в тому самому розділі зазначає, що жодна реалізація не повинна встановлювати обмеження, якого вона може уникнути. Проте багато реалізацій усе одно його встановлюють, і повідомлення, що перевищує цю межу, відхиляється на етапі MAIL FROM, ще до надсилання тіла. Платформи надсилання стикаються з цим, коли кодують одержувача у шляху повернення, щоб зіставляти повернення з відповідними адресатами, через що довжина залежить від того, кому ви пишете, а не від вас.
У разі невдачі: Скоротіть фіксовану частину, яку ваша платформа додає на початку, або змініть домен для повернень на коротший. Якщо ви не можете змінити ні те, ні інше, під загрозою перебувають адреси ваших підписників із найбільшою довжиною, тому варто виміряти найдовшу адресу у вашому списку, а не середню.
Рекомендація. Нічого не знімає.
RFC 5321 §4.5.3.1.1 — Local-part
The maximum total length of a user name or other local-part is 64 octets.
RFC 5321 §4.5.3.1 — Size Limits and Minimums
Every implementation MUST be able to receive objects of at least these sizes.
Haraka — the address parser that enforces the 64-octet local-part, and the flag that relaxes it
Звітування TLS advisory.tls_rpt
Чи запитує домен звіти, коли комусь не вдається доставити до нього пошту через TLS. Працює в парі з MTA-STS: політика без звітування не дає змоги визначити, чи вона працює.
У разі невдачі: Додайте TXT-запис з адресою, яка отримуватиме щоденні звіти.
Рекомендація. Нічого не знімає.
RFC 8460 §3 — Reporting Policy
A domain publishes a record to its DNS indicating that it wishes to receive reports.