Я установил _dmarc для просмотра отчетов об аутентификации электронной почты (в случае сбоя).
как это
"v=DMARC1;p=quarantine;pct=100;rua=mailto:dmarcreports@example.com"
И я получаю эти отчеты от Google.
отчет, который я получаю, мои электронные письма хороши, потому что они приходят из AWS SES и все настроены нормально, это выглядит так
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
НО иногда я получаю такие записи
<record>
<row>
<source_ip>209.85.220.41</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>mydomain.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>mydomain.com</domain>
<result>pass</result>
<selector>xxx</selector>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
<selector>gggxxx</selector>
</dkim>
<spf>
<domain>gmail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
И я понимаю, что кто-то переслал мое письмо, но без перезаписи заголовков, и этот кто-то был gmail
.
Почему Gmail не перезаписывает заголовки и почему мне вообще нужно заботиться о пересылке? Они предполагают отправлять мне электронные письма только тогда, когда это моя проблема, верно?
Я что-то путаю?
Здесь проверяем несколько предположений:
Почему Gmail не перезаписывает заголовки ...?
Серверная / автоматическая пересылка обычно ведет себя следующим образом: сохранение исходного отправителя в header.from
и изменение envelope from
(bounce-address
) в службу пересылки электронной почты. Когда согласованный DKIM
подпись присутствует и пока подписанные поля не изменены, DKIM
успешно аутентифицирует сообщение и DMARC
пройдет. Если подпись DKIM не найдена, DMARC
не удастся.
Они предполагают отправлять мне электронные письма только тогда, когда это моя проблема, верно?
Нет. DMARC
записи политики, содержащие rua
запрашивают у принимающих серверов периодическую отправку сводного отчета обо всех полученных сообщениях электронной почты, которые были отправлены от имени домена в header.from
поле. Принимающий сервер не должен делать предположений (чья это вина) о том, что является причиной неудачной конкретной проверки (в этом случае несовпадение доменов, используемых в header.from
и envelope from
).