Я пытаюсь за пару дней правильно настроить постфиксный сервер для наших продуктов. Сервер работает правильно, но некоторые электронные письма, отправленные в Gmail, доставляются в ящик для спама. Сервер настроен так:
/etc/postfix/main.cf
mydomain = example.com
myhostname = example.com
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, example.com, example.org, example.net
virtual_alias_domains = example.org, example.net
virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/master.cf
587 inet n - n - - smtpd -v
smtp inet n - n - - smtpd -v
/ и т.д. / постфикс / виртуальный
user1@example.com user1
user2@example.com user2
user3@example.com user3
user1@example.net user1
user2@example.net user2
user3@example.net user3
user4@example.net user4
user2@example.org user2
Мое рабочее правило SPF: 10.0.0.1 - это поддельный IP-адрес для example.com, и оно применяется к example.com, example.net и example.org: v = spf1 mx ip4: 10.0.0.1 ~ all
Я настроил MX DNS, rDNS, SPF, и все было нормально и работало. И только аутентифицированные пользователи могут отправлять электронную почту через этот сервер.
Итак, вот в чем проблема: если письмо отправлено с адреса user1@example.com (то же самое, что и mydomain и myhostname), оно доставляется в почтовый ящик. Если я отправлю письмо с адреса user1@example.net, оно будет доставлено в ящик для спама.
Если посмотреть на заголовки электронного письма, разница в следующем:
тот, который приходит в ящик для спама
Received: from example.com (mail.example.com. [10.0.0.1])
by mx.google.com with ESMTP id e69si1483476yhm.50.2013.03.07.06.42.23;
Thu, 07 Mar 2013 06:42:23 -0800 (PST)
Received-SPF: pass (google.com: domain of user3@example.net designates 10.0.0.1 as permitted sender) client-ip=10.0.0.1;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of user3@example.net designates 10.0.0.1 as permitted sender) smtp.mail=user3@example.net
Received: from new-host-5.home (177.205.99.64.dynamic.adsl.gvt.net.br [177.205.99.64])
by example.com (Postfix) with ESMTP id 7EAB2D186F
for <maykelsb@gmail.com>; Thu, 7 Mar 2013 09:42:22 -0500 (EST)
From: User3 <user3@example.net>
тот, который приходит в коробке
Received: from example.com (mail.example.com. [10.0.0.1])
by mx.google.com with ESMTP id a30si1434990yhm.294.2013.03.07.06.45.39;
Thu, 07 Mar 2013 06:45:39 -0800 (PST)
Received-SPF: pass (google.com: domain of user3@example.com designates 10.0.0.1 as permitted sender) client-ip=10.0.0.1;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of user3@example.com designates 10.0.0.1 as permitted sender) smtp.mail=user3@example.com
Received: from new-host-5.home (177.205.99.64.dynamic.adsl.gvt.net.br [177.205.99.64])
by example.com (Postfix) with ESMTP id A55BCD186F
for <maykelsb@gmail.com>; Thu, 7 Mar 2013 09:45:38 -0500 (EST)
From: User3 <user3@example.com>
Я попытался использовать транспорт, чтобы изменить исходящую электронную почту для отправки каждому через свой IP-адрес, но безуспешно. Вот мои настройки транспорта (также пробовали с именем и ip):
example.com smtp:10.0.0.1:25
example.net smtp:10.0.0.2:25
example.org smtp:10.0.0.3:25
У кого-то есть идеи, как это решить? Я думаю, что если бы я мог установить исходящий трафик для user3@example.net через mail.example.net, а не mail.example.com, эта проблема была бы решена. Спасибо.
Конфигурация DNS трех IP-адресов очень похожа друг на друга, как вы можете видеть ниже:
example.com A 10.0.0.2
example.com MX 10 mail.example.com
example.com TXT v=spf1 mx ip4:10.0.0.1 ~all
mail.example.com A 10.0.0.1
mail.example.com MX 1 mail.example.com
mail.example.com TXT v=spf1 mx ip4:10.0.0.1 ~all
example.net A 10.0.0.1
example.net MX 10 mail.example.net
example.net TXT v=spf1 mx ip4:10.0.0.1 ~all
mail.example.net A 10.0.0.2
mail.example.net MX 1 mail.example.net
mail.example.net TXT v=spf1 mx ip4:10.0.0.1 ~all
example.org A 10.0.0.3
example.org MX 10 mail.example.org
example.org TXT v=spf1 mx ip4:10.0.0.1 ~all
mail.example.org A 10.0.0.3
mail.example.org MX 1 mail.example.org
mail.example.org TXT v=spf1 mx ip4:10.0.0.1 ~all
Также у меня есть эти интерфейсы
10.0.0.1: eth0
10.0.0.2: eth0.1
10.0.0.3: eth0.2
Это настройки rDNS, созданные моим интернет-провайдером:
10.0.0.1 - example.com
10.0.0.2 - example.net
10.0.0.3 - example.org
Я просил иметь:
10.0.0.1 - example.com, example.net, example.org
Но он сказал, что это может привести к проблемам с идентификацией моего почтового сервера. Он хотел бы действовать что-то вроде балансировки нагрузки, предоставляя разный баланс.
Я обновил свой /etc/postfix/master.cf, чтобы он выглядел следующим образом:
example.com:smtp inet n - n - - smtpd -o myhostname=example.com
example.com:587 inet n - n - - smtpd -o myhostname=example.com
example.net:smtp inet n - n - - smtpd -o myhostname=example.net -o smtp_bind_address=10.0.0.2
example.net:587 inet n - n - - smtpd -o myhostname=example.net -o smtp_bind_address=10.0.0.2
example.org:smtp inet n - n - - smtpd -o myhostname=example.org -o smtp_bind_address=10.0.0.3
example.org:587 inet n - n - - smtpd -o myhostname=example.org -o smtp_bind_address=10.0.0.3
Postfix, кажется, игнорирует -o smtp_bind_address = 10.0.0.2, потому что он продолжает доставлять почту через 10.0.0.1.
Проблема в том, что postfix использует 10.0.0.1 для всей вашей почты. Само по себе это не проблема, поскольку вы можете легко добавить несколько виртуальных доменов, указывающих на один и тот же IP-адрес.
В основном я бы изменил записи для example.org и т. Д. Таким образом.
example.org A 10.0.0.3
example.org MX 10 mail.example.org
mail.example.org CNAME mail.example.com
Таким образом, ваша запись SPF будет действительной, а запись MX, запись A для почтового сервера и т. Д. Будут соответствовать правильному IP-адресу.
То есть, если у вас нет другой причины использовать несколько IP-адресов.