Правильно ли я настроил электронную почту сервера с помощью Google SPF?

Доброе утро, у меня небольшие проблемы с получением SPF Pass для заголовков писем, когда электронные письма отправляются через контактную форму 7 в Wordpress.

Почта, отправляемая через Contact From 7, часто попадает в спам, и, глядя на заголовки источников почты, я вижу, что IP-адрес сайта не обозначен как разрешенный отправитель.

ARC-Authentication-Results: i=1; mx.google.com;
   spf=neutral (google.com: *serverIP* is neither permitted nor denied by 
best guess record for domain of www-data@ubuntu) smtp.mailfrom=www-data@ubuntu;
   dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=*domain*
Return-Path: <www-data@ubuntu>
Received: from ubuntu (*domain*. [*serverIP*])
    by mx.google.com with ESMTP id 91-v6si4638670wre.46.2018.05.17.07.10.20;
    Thu, 17 May 2018 07:10:20 -0700 (PDT)
 Received-SPF: neutral (google.com: *serverIP* is neither permitted nor 
denied by best guess record for domain of www-data@ubuntu) client- 
ip=*ServerIP*;
Authentication-Results: mx.google.com;
   spf=neutral (google.com: *ServerIP* is neither permitted nor denied by 
best guess record for domain of www-data@ubuntu) smtp.mailfrom=www- 
data@ubuntu;
   dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=*Domain*
Received: by ubuntu (Postfix, from userid 33)
id 036C93F7D3; Thu, 17 May 2018 14:10:20 +0000 (UTC)

Все записи SPF были настроены в настройках DNS и верны при проверке с помощью инструмента тестирования SPF от Google. Мы используем Google Business Apps. Все в порядке с DKIM, DMARC и SPF, поэтому не знаю, почему он говорит, что SPF Neutral и DMARC не работают ...

Любая помощь очень ценится.


person trainmania100    schedule 18.05.2018    source источник


Ответы (1)


Это проблема:

Return-Path: <www-data@ubuntu>

Заголовок обратного пути добавляется принимающим сервером (Google) и не является тем, что вы должны устанавливать в качестве отправителя. Принимающий сервер устанавливает его с SMTP MAIL FROM адреса, также известного как «отправитель конверта». На этот адрес также должны отправляться сообщения о недоставке, а не на адрес отправителя или адрес для ответа, указанный в сообщении.

Проблема здесь в том, что при отсутствии явно установленного отправителя конверта PHP пытается угадать его, просматривая имя текущего пользователя и хоста, на которых выполняется процесс отправки. Вот почему ваш отправитель конверта www-data (имя пользователя) @ ubuntu (имя хоста вашего сервера). ubuntu не является разрешаемым именем хоста, поэтому Google не может найти запись SPF, чтобы проверить ее, поэтому он возвращается к «нейтральному» вердикту SPF по умолчанию, который вы видите.

Есть несколько способов справиться с этим. Прежде всего, вы должны установить имя хоста своего сервера, чтобы он знал, что ему вызывать - PHP увидит эту информацию и будет использовать ее для установки резервного адреса. Если вы запустите команду hostname, вы, вероятно, получите ubuntu, поэтому исправьте это (сразу и навсегда), запустив:

sudo hostname myhostname.example.com
echo "myhostname.example.com" | sudo tee /etc/hostname

замените, конечно, ваш реальный хост и доменное имя.

Установить имя пользователя сложнее, но на самом деле это не обязательно для получения прохода SPF, потому что он смотрит только на домен, поэтому [email protected] будет работать нормально, хотя вы можете столкнуться с проблемами, если хотите правильно обрабатывать отказы.

Наиболее практичный способ установки отправителя конверта - скопировать его с адреса отправителя сообщения или явно указать, и это должно быть сделано с помощью PHP-кода вашей контактной формы. Если можно убедить Contact Form 7 использовать PHPMailer, это произойдет автоматически. Если он отправляется напрямую через почтовую функцию или одну из оболочек WordPress, это может быть сложнее, и вам придется заняться дальнейшим исследованием.

В любом случае, просто исправив имя хоста, вы получите SPF pass, что является непосредственной проблемой.

person Synchro    schedule 18.05.2018
comment
Спасибо за вашу помощь, но, к сожалению, это не помогло. Обратный путь по-прежнему www-data @ ubuntu. Когда я запустил команду hostname, она выдала мне не ubuntu, а мое имя сервера. Я выполнил указанную вами команду и все равно обновил ее - person trainmania100; 22.05.2018
comment
Возможно, вам потребуется перезапустить PHP или ваш веб-сервер, чтобы изменения вступили в силу. Вы можете проверить серверную среду, запустив var_dump($_SERVER); в PHP. - person Synchro; 22.05.2018
comment
Я также сталкиваюсь с этой проблемой, мой всегда будет Return-Path: ‹[email protected]›, в то время как у меня есть SPF: PASS, DKIM: PASS, DMARC: 'PASS' и все еще заканчивается в Junk! Кто-нибудь, пожалуйста, помогите. - person webmastx; 14.01.2020
comment
Неспособность получить пропуск часто означает, что вы попадаете в папку нежелательной почты, однако, если все они пройдут, не означает, что вы этого не сделаете. Есть много других факторов, которые влияют на размещение папки «Входящие», и большинство из них неизвестны и находятся вне вашего контроля. Вы можете попробовать прочитать документацию PHPMailer о доставляемости . - person Synchro; 14.01.2020