Назад | Перейти на главную страницу

Ошибка SPF для электронной почты, импортированной в Gmail из-за IP-адреса клиента, а не сервера в сообщении при отправке через SMTP из одного локального ящика в другой

У нас есть Linux VPS (Debian) с доменом (скажем, example.com с MX mail.example.com), на котором настроен SPF. Работает dovecot + exim. Кроме того, есть прямой администратор.

Когда я отправляю почту на чужой сервер, все в порядке. В сообщении указан IP-адрес сервера, и проверка SPF проходит нормально.

Некоторые данные изменены (домен и т. Д.):

Received: from mail.example.com (mail.example.com. [188.40.153.39])
    by mx.google.com with ESMTPS id ***.7.2015.02.18.04.09.46
    for <*@gmail.com>
    (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
    Wed, 18 Feb 2015 04:09:47 -0800 (PST)
Received-SPF: pass (google.com: domain of test@example.com designates 188.40.153.39 as permitted sender) client-ip=188.40.153.39;

Но когда я отправляю его из локального почтового ящика в другой локальный почтовый ящик, а затем получаю почту в Gmail через POP3, у меня возникает проблема с SPF, потому что сообщение содержит исходный IP-адрес клиента и проверка SPF не выполняется.

Authentication-Results: mx.google.com;
   spf=fail (google.com: domain of test@example.com does not designate 82.160.100.10 as permitted sender) smtp.mail=test@example.com
Received-SPF: fail (google.com: domain of test@example.com does not designate 82.160.100.10 as permitted sender) client-ip=82.160.100.10;

82.160.100.10 - IP первоначального отправителя.

Из-за этой проблемы наша внутренняя корреспонденция имеет тенденцию отмечаться как спам в Gmail для людей, которые проверяют свои ящики через нее.

Есть идеи, как это исправить?


РЕДАКТИРОВАТЬ: заголовки тестового письма (изменили наши IP-адреса и домен)

1) Электронное письмо, отправленное из одного ящика в другой - заголовки из клиента Thunderbird:

Return-path: <ldev@example.com>
Envelope-to: zbyszek@example.com
Delivery-date: Thu, 19 Feb 2015 11:41:20 +0100
Received: from nat10.net08-g2.isko.net.pl ([82.160.100.10] helo=[11.0.0.22])
    by mail.example.com with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128)
    (Exim 4.83)
    (envelope-from <ldev@example.com>)
    id 1YOOPC-0005Ud-Qq
    for zbyszek@example.com; Thu, 19 Feb 2015 11:41:20 +0100
Message-ID: <54E5BDCE.5040207@example.com>
Date: Thu, 19 Feb 2015 11:41:18 +0100
From: Head Developer <ldev@example.com>
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Zbyszek <zbyszek@example.com>
Subject: This is test
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

2) То же письмо после получения почтой Gmail (при автоматическом регулярном импорте по POP3):

Delivered-To: *@gmail.com
Received: by 10.140.86.210 with SMTP id p76csp775880qgd;
    Thu, 19 Feb 2015 02:47:12 -0800 (PST)
X-Received: by 10.140.102.165 with SMTP id w34mr10762910qge.26.1424342832562;
    Thu, 19 Feb 2015 02:47:12 -0800 (PST)
Authentication-Results: mx.google.com;
   spf=fail (google.com: domain of ldev@example.com does not designate 82.160.100.10 as permitted sender) smtp.mail=ldev@example.com
Received-SPF: fail (google.com: domain of ldev@example.com does not designate 82.160.100.10 as permitted sender) client-ip=82.160.100.10;
Received: by 10.224.31.8 with POP3 id w8mf619596qac.5;
    Thu, 19 Feb 2015 02:47:12 -0800 (PST)
X-Gmail-Fetch-Info: zbyszek@example.com 2 mail.example.com 110 zbyszek@example.com
Return-path: <ldev@example.com>
Envelope-to: zbyszek@example.com
Delivery-date: Thu, 19 Feb 2015 11:41:20 +0100
Received: from nat10.net08-g2.isko.net.pl ([82.160.100.10] helo=[11.0.0.22])
    by mail.example.com with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128)
    (Exim 4.83)
    (envelope-from <ldev@example.com>)
    id 1YOOXn-0005j5-Tm
    for zbyszek@example.com; Thu, 19 Feb 2015 11:41:20 +0100
Message-ID: <54E5BDCE.5040207@example.com>
Date: Thu, 19 Feb 2015 11:41:18 +0100
From: Head Developer <ldev@example.com>
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Zbyszek <zbyszek@example.com>
Subject: This is test
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Изменить: некоторая дополнительная информация


Изменить: раскрытые IP-адреса не так чувствительны

Отказ от ответственности: этот ответ был домыслом, пока его не подтвердил человек из GMail.

Похоже, это GMail неправильно обработал ваше полученное письмо. Некоторые люди также сообщают о подобном случае с вашим в Вот, Вот или Вот

Проблема в том, что GMail также развертывает меры SPF при сканировании электронной почты после ее получения через POP3.

Обычно проверка SPF происходит в транзакции SMTP путем проверки доменных частей адреса отправителя и IP-адреса клиента. Но в POP3 GMail должен разбирать заголовок и находить последний Received заголовок.

Received: from nat10.net08-g2.* ([*.160.100.10] helo=[11.0.0.22])
    by mail.example.com with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128)
    (Exim 4.83)
    (envelope-from <ldev@example.com>)
    id 1YOOXn-0005j5-Tm
    for zbyszek@example.com; Thu, 19 Feb 2015 11:41:20 +0100

Это исходное электронное письмо, полученное с вашего сервера. В нем указано, что ваша электронная почта принимает электронную почту от *.160.100.10 с отправителем ldev@example.com. На этом этапе Gmail притворяется вашим сервером и проверяет доменные части адреса отправителя (example.com) и IP-адреса клиента (* .160.100.10). Результат был ожидаемым:

Программный сбой SPF, поскольку домен ldev@example.com не указывает * .160.100.10 в качестве разрешенного отправителя

В качестве обходного пути вы можете настроить фильтры Gmail, чтобы никогда не отмечать вашу электронную почту как спам.

Кажется ошибкой, что Gmail не соблюдает ESMTPA в заголовке Received, чтобы показать, что MUA является доверенным хостом. На ум приходят некоторые возможные обходные пути:

  1. используйте разделенный MX, то есть один экземпляр eximʻa для приема и пересылки от аутентифицированных клиентов, а второй - для приема в почтовые ящики. Это имитирует почту ISP-ISP, которую может ожидать Gmail, и в заголовках будет IP-адрес, который соответствует записи SPF.
  2. добавьте заголовок Received вверху, который имитирует вышеуказанную передачу, добавив add_header = Received: by 10.224.31.8 with ESMTP ....
  3. для пользователей, проверяющих свою почту в Gmail через POP, вместо этого отправьте копию в свою учетную запись Gmail.

У меня была такая же проблема, и я исправил ее, используя следующий документ Google. Это может помочь вам, и стоит попробовать.

https://support.google.com/a/answer/33786?hl=en

Вам нужно будет добавить следующую запись к существующей записи spf TXT. Это помогает Google определить источник адреса электронной почты.

include:_spf.google.com

Таким образом, вам нужно обновить свою запись spf следующим образом.

Запись SPF: "v=spf1 a mx ip4:188.40.153.39 include:_spf.google.com -all"

Затем попробуйте отправить электронное письмо, и оно должно попасть прямо в ваш почтовый ящик, если ваш IP-адрес имеет хорошую репутацию.