Проблема SPF с SpamAssassin

У меня есть внутреннее приложение управления для небольшой компании, записанной в Python и работе Linode VPS, с которым пользователи могут послать случайные электронные письма своим клиентам. Электронные письма довольно просты: текстовая часть (т.е. не HTML) с PDF выставляет счет вложению, созданному с email модуль stdlib и отправленный через внешний сервер SMTP (который не размещается на VPS).

Все работало вполне гладко некоторое время, но затем в последнее время я получал жалобы, что электронные письма часто классифицируются как спам почтовыми серверами получения. Я послал тестовое электронное письмо http://www.mail-tester.com и обнаружил что, добавив несколько недостающих заголовков (Date и Message-ID в особенности), помог снизить "spaminess" уровень моих сообщений. Однако существует одна связанная с SPF проблема SpamAssassin, которая все еще ускользает от меня:

SPF_HELO_SOFTFAIL   SPF: HELO does not match SPF record (softfail)

Я пытался послать тестовую электронную почту на свой счет Gmail и здесь являюсь соответствующими заголовками, которые могут быть найдены, когда я действительно "Показываю Исходный":

Received-SPF: pass (google.com: domain of <sender_address> designates <ip_smtp_server> as permitted sender) client-ip=<ip_smtp_server>;
Received: from [<ip_linode_vps>] (helo=<domain_name_linode_vps>)

От этого и некоторой дополнительной информации я собрался тут и там, я вполне уверен, что эта проблема могла быть решена, так или иначе изменив запись SPF домена сервера SMTP (который уже существует как запись TXT с a "v=spf1 a mx... ~all" строка, содержащая ip4 ссылка на <ip_smtp_server>), но моего текущего понимания недостаточно, чтобы сделать так, таким образом, я ценил бы любую справку.

Обновление:

<ip_linode_vps> = 69.164.216.89
<domain_name_linode_vps> = li131-89.members.linode.com
<ip_smtp_server> = 192.99.17.51
<domain_name_smtp_server> = mail.roucet.com
<already_existing_spf_record> = "v=spf1 a mx ip4:192.99.17.51 ip4:158.85.89.116 ip4:158.85.77.121 ~all"
4
задан 13 December 2014 в 19:46
1 ответ

Все авторизованные почтовые серверы должны быть перечислены в записи SPF. Так как у вас теперь есть новый авторизованный почтовый сервер, он должен быть добавлен. Некоторые SPAM-проверки различают список (A, MX) и разрешённый (~all), и не будут рассматривать незарегистрированный адрес как пропуск. Это наказывает отправителей, которые не отправляют сообщения через авторизованный сервер (часто это спам-боты). Политика ~all указывает на то, что пользователю на самом деле все равно, кто использует его домен, по сравнению с политикой -all, которая может заблокировать электронную почту или отправить ее в карантин.

Альтернативным подходом является настройка нового сервера на пересылку сообщений с использованием существующего сервера. Обычно приложения позволяют настроить сервер ретрансляции электронной почты. В python вы настраиваете имя сервера VPS вместо localhost.

Какой бы сервер ни посылал сообщения электронной почты, он должен добавлять требуемые заголовки при получении сообщения от вашего приложения. Кроме того, вы можете добавить заголовки в приложение. В заголовке Date (Дата) указан определенный формат даты. Заголовок Message-id имеет определенный формат, но не такой строгий. Идентификаторы сообщений напоминают адрес электронной почты, но слева должен быть уникальный идентификатор.

3
ответ дан 3 December 2019 в 03:42

Теги

Похожие вопросы