У меня есть домен личного пользования (mydomain.com), размещенный на хостинге Gandi и настроенный с почтовыми псевдонимами для моей семьи, которые указывают на наши соответствующие адреса Gmail:
Псевдоним | Реальный адрес |
---|---|
[email protected] | [email protected] |
[email protected] | [email protected] |
и так далее.
Gmail настроен на отправку электронной почты в качестве персонального адреса, а также у меня настроена запись SPF:
v=spf1 include:_spf.google.com include:_spf.gpaas.net include:_mailcust.gandi.net ?all
Хотя mail-tester.com сообщает, что SPF настроен правильно, при отправке электронного письма с адреса [anyone]@mydomain.com на адрес [anyone else]@mydomain.com возможно получение ошибки SOFTFAIL:
Отправлено из | Отправлено в | Результат SPF по электронной почте |
---|---|---|
[email protected] | [email protected] | ПРОХОДИТЬ |
[email protected] | [email protected] | ПРОХОДИТЬ |
[email protected] | [email protected] | ПРОХОДИТЬ |
[email protected] | [email protected] | СОФФАЙЛ |
Заголовки при возникновении ошибки SOFTFAIL в электронном письме выглядят следующим образом:
Delivered-To: [email protected]
ARC-Authentication-Results: i=1; mx.google.com;
spf=softfail (google.com: domain of transitioning [email protected] does not designate 2001:4b98:dc4:8::230 as permitted sender) [email protected]
Return-Path: <[email protected]>
Received: from relay10.mail.gandi.net (relay10.mail.gandi.net. [2001:4b98:dc4:8::230])
by mx.google.com with ESMTPS id w4-20020a05600018c400b0020ac7a84cb7si9021160wrq.441.2022.05.01.02.22.05
for <[email protected]>
(version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256);
Sun, 01 May 2022 02:22:06 -0700 (PDT)
Received-SPF: softfail (google.com: domain of transitioning [email protected] does not designate 2001:4b98:dc4:8::230 as permitted sender) client-ip=2001:4b98:dc4:8::230;
Authentication-Results: mx.google.com;
spf=softfail (google.com: domain of transitioning [email protected] does not designate 2001:4b98:dc4:8::230 as permitted sender) [email protected]
Received: from spool.mail.gandi.net (spool3.mail.gandi.net [217.70.178.212]) by relay.mail.gandi.net (Postfix) with ESMTPS id 51151240003 for <[email protected]>; Sun,
1 May 2022 09:22:05 +0000 (UTC)
X-Envelope-To: [email protected]
Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by spool.mail.gandi.net (Postfix) with ESMTPS id 49A2CAC0C45 for <[email protected]>; Sun,
1 May 2022 09:22:04 +0000 (UTC)
Received: by mail-lf1-f48.google.com with SMTP id w19so20836346lfu.11
for <[email protected]>; Sun, 01 May 2022 02:22:04 -0700 (PDT)
Received: from smtpclient.apple (cpc1-sotn14-2-0-cust79.15-1.cable.virginm.net. [81.96.148.80])
by smtp.gmail.com with ESMTPSA id r7-20020a2e8e27000000b0024f3d1dae9asm761964ljk.34.2022.05.01.02.22.02
for <[email protected]>
(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
Sun, 01 May 2022 02:22:02 -0700 (PDT)
From: Me <[email protected]>
To: My Brother <[email protected]>
Received-SPF: pass (spool3: domain of gmail.com designates 209.85.167.48 as permitted sender) client-ip=209.85.167.48; [email protected]; helo=mail-lf1-f48.google.com;
Authentication-Results: spool.mail.gandi.net; dkim=none; dmarc=none; spf=pass (spool.mail.gandi.net: domain of [email protected] designates 209.85.167.48 as permitted sender) [email protected]
Можно ли как-то предотвратить прохождение SPF писем, отправленных с mydomain.com на другой адрес в mydomain.com?
решение1
Вы можете видеть, что почта была получена с сервера Gandi:
Received: from relay10.mail.gandi.net (relay10.mail.gandi.net. [2001:4b98:dc4:8::230])
Вы можете видеть, что серверы Gandi не авторизованы в записи SPF:
Received-SPF: softfail (google.com: domain of transitioning [email protected] does not designate 2001:4b98:dc4:8::230 as permitted sender)
SPF проверяет return-path
заголовок. Не mailfrom
заголовок. return-path
Это [email protected]
. Таким образом, записи SPF gmail.com не разрешают серверам Gandi отправлять электронную почту с использованием return-path
с адресами электронной почты gmail.com.
SPF функционирует нормально. То, что вы видите, является неотъемлемой слабостью протокола SPF в отношении пересылки почты. Когда почта пересылается на уровне MTA (почтового сервера), заголовки mailfrom
и return-path
не перезаписываются (и не должны перезаписываться), но когда пересылаемая почта достигает почтового сервера получателя, она приходит с сервера пересылки, а не с исходного почтового сервера отправителя. Поэтому почтовый сервер получателя проверяет SPF и видит, что домен return-path
не авторизует почтовый сервер пересылки для отправки почты.
Пересылка нарушает SPF. Поскольку вы не контролируете записи SPF для домена gmail.com
, вы не можете разрешить серверам Gandi пересылать почту от имени gmail. Вот почему SPF нельзя использовать отдельно, чтобы определить, авторизована почта или нет.
У вас есть четыре решения (я полагаю, что для вариантов 1 и 2 требуется платная учетная запись Google Workspace):
- Убедитесь, что при отправке электронной почты с gmail с использованием псевдонима адреса электронной почты, он также использует псевдоним электронной почты в
return-path
заголовке. Также добавьте серверы gmail в запись SPF дляmydomain.com
. Для получения дополнительной информации об отправке электронной почты в качестве псевдонима с gmail см. здесь:https://support.google.com/mail/answer/22370?hl=ru - Настройте записи MX и Gmail таким образом, чтобы электронная почта, отправляемая на ваш псевдоним, отправлялась непосредственно на серверы Gmail и попадала в ваш почтовый ящик, а не пересылалась через третью сторону.
- Получайте почту, отправленную на ваш псевдоним электронной почты на третьей стороне, вместо пересылки сообщения. Затем настройте Gmail для сбора этой электронной почты от третьей стороны с помощьюИмпортировать письма из моего другого аккаунта (POP3)опция в gmail.
- Если у вас есть контроль над поведением сервера пересылки электронной почты, вы можете создать правило, которое перезаписывает заголовок,
return-path
чтобы он соответствовалmailfrom
заголовку при пересылке электронной почты, полученной с одного из ваших псевдонимов электронной почты и предназначенной для него.
решение2
Этотможетбыть связано с сообщенной ошибкой в Gmail
Я не думаю, что проблема решена, хотя некоторые авторы сообщают об успехе.
решение3
Проблема в том, что SPF сам по себе не считается достаточным для остановки писем, не прошедших аутентификацию. Даже hard fail не сделает этого.
Это побудило к разработке DMARC. С его помощью можно дать указание серверам-получателям (включая отправленные с внутреннего на внутренний) отклонять почту, которая не прошла аутентификацию.
Подробнее о жестких и мягких сбоях и о том, почему DMARC является решением, можно прочитать здесь:https://knowledge.ondmarc.redsift.com/en/articles/1148885-spf-hard-fail-vs-spf-soft-fail