Недавно я начал настраивать адреса на своем постфиксном сервере и столкнулся с проблемой с моими коллегами.
Предположим, у меня есть псевдоним test@bar.ru
который пересылает почту на somedude@gmail.com и vitali.r@foo.net
В случае, если мы отправляем в один и тот же домен, псевдоним, все работает отлично, электронная почта доставляется, но давайте углубимся в проблему с другим доменом, поскольку электронная почта немедленно возвращается с этой ошибкой:
<vitali.r@foo.net> (expanded from <alias@somedomain.com>): host
mx.foo.net[144.76.75.247] said: 550 You must be authenticated (in
reply to RCPT TO command)
К счастью, владельцы этого другого домена - мои коллеги, поэтому я сначала адресовал этот вопрос им. Мы немного покопались и выяснили, что электронное письмо не просто отправляется с vitali.r@foo.net, а отправляется под другого человека.
Чтобы лучше понять этот вопрос, я советую вам взглянуть на заголовки электронной почты, доставленной на somedude@gmail.com, которая отклонена сервером foo.net.
Delivered-To: somedude@gmail.com
Received: by 10.140.108.54 with SMTP id i51csp86667qgf;
Thu, 24 Apr 2014 04:54:02 -0700 (PDT)
X-Received: by 10.14.246.1 with SMTP id p1mr2029071eer.20.1398340441786;
Thu, 24 Apr 2014 04:54:01 -0700 (PDT)
Return-Path: <vitali.r@foo.net>
Received: from bar.ru (bar.ru. [47.175.193.55])
by mx.google.com with ESMTPS id p8si7998323eew.276.2014.04.24.04.54.01
for <somedude@gmail.com>
(version=TLSv1 cipher=RC4-SHA bits=128/128);
Thu, 24 Apr 2014 04:54:01 -0700 (PDT)
Received-SPF: fail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) client-ip=47.175.193.55;
Authentication-Results: mx.google.com;
spf=hardfail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) smtp.mail=vitali.r@foo.net;
dkim=pass header.i=@foo.net
Received: from mx.foo.net (mx.foo.net [144.76.75.247])
by bar.ru (Postfix) with ESMTPS id BC4E9BC0031
for <testing@bar.ru>; Thu, 24 Apr 2014 15:54:00 +0400 (MSK)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=foo.net; s=default;
h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=Sr6qzI6M/AdTYgu33PjdinGA745C3GUCsXevUC1TgDI=;
b=DpO1qnFhn+Srhuuj+2bzi4bUOoMOAr4tSRqK/sbz0gt5Ogp+RK9BJQTpix5oPoebo7M7MYIV+zHlzTdJnpPa0FSa4WTewvYxOE81CX/+k/VLQdK1SPcbdPSRACzKsS3Jq7QE9XKK1maW8s0syGbToGT/KNXHkeBKtP6QhIrUs3Y4=;
Envelope-to: testing@bar.ru
Delivery-date: Thu, 24 Apr 2014 13:54:00 +0200
Message-ID: <5358FB52.8040508@foo.net>
Date: Thu, 24 Apr 2014 14:53:54 +0300
From: Vitali R <vitali.r@foo.net>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:16.0) Gecko/20121028 Thunderbird/16.0.2
MIME-Version: 1.0
To: testing@bar.ru
Subject: hello world this is alias test
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
testest
Изображение для лучшего понимания: http://i.imgur.com/XAVZY5L.png Итак, самое интересное - это строка
Received-SPF: fail (google.com: domain of vitali.r@foo.net does not designate 47.175.193.55 as permitted sender) client-ip=47.175.193.55;
И он будет прав, 11.111.111.11 действительно не указывает на otherdomain.com, поскольку 47.175.193.55 - это IP-адрес сервера, через который было отправлено письмо (через псевдоним).
Проще говоря, сервер выдает себя за то, что письмо отправлено с vitali.r@foo.net, в то время как на самом деле оно было отправлено с bar.ru, и мой коллега сервер отклоняет письмо из-за этого.
Я понимаю, что это может показаться запутанным, но посмотрим на это. Вы можете отправить письмо практически на любой сервер, сообщив серверу, что вы отправили его по электронной почте, к которой у вас явно нет доступа. Это примерно то, что здесь происходит с проблемой псевдонима.
Как бы вы отреагировали на такого рода проблемы и считаете ли вы, что здесь уместно отклонять электронную почту?
Спасибо за помощь.
Способ, которым postfix получает почту и пересылает ее псевдонимам, совершенно правильный. Конечно, поскольку отправитель из внешнего домена, и вы создали псевдоним для внешнего домена, принимающий сервер заметит, что вам действительно не следует отправлять почту из домена, за который вы не несете ответственности. Некоторые серверы возражают против отправки им почты, утверждая, что она пришла из домена, за который они несут ответственность. Это небезосновательно, и, учитывая количество рассылаемого в настоящее время спама, возможно, даже разумно.
Есть несколько способов решить эту проблему.
Не создавайте псевдонимы для писем в доменах, за которые вы не несете ответственности. Это ограничивающий, но самый простой способ решить проблему.
Использовать smtp_generic_maps, это потребует создания записей для сопоставления неправильного адреса с правильным адресом, например vitali.r@foo.net vitali@bar.ru
, конечно, для этого потребуется запись для каждого электронного письма, которое вы хотите сопоставить, и общая для писем, которых вы не знаете: @foo.net info@bar.ru
перепишу любой @foo.net
Отправить info@bar.ru
, Кроме vitali.r@foo.net
. Это имеет побочный эффект, заключающийся в удалении исходного отправителя ... что не очень хорошо, если вы хотите ответить человеку, отправившему исходное сообщение.
Если сервер, на который отправляется псевдоним, является вашей учетной записью, sender_dependent_relayhost_maps может быть допустимым решением, так как позволяет postfix обеспечивать аутентификацию, запрашиваемую удаленным сервером в этом случае. Недостатки: он будет обеспечивать аутентификацию только в том случае, если отправитель - это тот, который настроен на карте, и, конечно, он решит только проблему этого единственного сервера. Однако, если у вас есть всего несколько примеров подобных ситуаций, это может быть лучший способ сделать это ...