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

Постфикс неправильно настроен? 550 Отправитель отклонен от принимающего сервера

Мы используем Postfix на нашей машине с CentOS 6, имеющей следующую конфигурацию. Мы используем PHP mail() функция для отправки элементарных писем для сброса пароля, но есть проблема.

Как вы увидите, mydomain и myhostname установлены правильно, afaik.

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = ***.ch
myhostname = test.***.ch
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

Теперь это то, что находится в /var/log/maillog Postfix при отправке электронного письма на адрес ***.***@***.ch, с участием ***.ch это тот же домен, что и наш отправляющий сервер test.***.ch горит:

Dec 13 16:55:06 R12X0210 postfix/pickup[6831]: E6D6311406AB: uid=48 from=<apache>
Dec 13 16:55:06 R12X0210 postfix/cleanup[6839]: E6D6311406AB: message-id=<20121213155506.E6D6311406AB@test.***.ch>
Dec 13 16:55:07 R12X0210 postfix/qmgr[6832]: E6D6311406AB: from=<apache@test.***.ch>, size=1276, nrcpt=1 (queue active)
Dec 13 16:55:52 R12X0210 postfix/smtp[6841]: E6D6311406AB: to=<***.***@***.ch>, relay=mail.***.ch[**.**.249.3]:25, delay=46, delays=0.18/0/21/24, dsn=5.0.0, status=bounced (host mail.***.ch[**.**.249.3] said: 550 Sender Rejected (in reply to RCPT TO command))
Dec 13 16:55:52 R12X0210 postfix/cleanup[6839]: 8562C11406AC: message-id=<20121213155552.8562C11406AC@test.***.ch>
Dec 13 16:55:52 R12X0210 postfix/bounce[6848]: E6D6311406AB: sender non-delivery notification: 8562C11406AC
Dec 13 16:55:52 R12X0210 postfix/qmgr[6832]: 8562C11406AC: from=<>, size=3065, nrcpt=1 (queue active)
Dec 13 16:55:52 R12X0210 postfix/qmgr[6832]: E6D6311406AB: removed
Dec 13 16:55:52 R12X0210 postfix/local[6850]: 8562C11406AC: to=<root@test.***.ch>, orig_to=<apache@test.***.ch>, relay=local, delay=0.13, delays=0.07/0/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
Dec 13 16:55:52 R12X0210 postfix/qmgr[6832]: 8562C11406AC: removed

Таким образом, принимающий сервер отклоняет отправителя (строка 4 вывода журнала). Мы протестировали его с еще одним получателем, и он сработал, поэтому эта проблема может быть совершенно не связана с нашими настройками, но связана с получателем.

Тем не менее, задавая этот вопрос, я хочу удостовериться, что мы не делаем очевидной неверной конфигурации на нашей стороне.

Во-первых, вы должны сообщить функции PHP mail (), кто является отправителем почты, если вы этого не сделаете, она возьмет имя пользователя, который запускает PHP, и добавит к нему @test. *****. Ch и я полагаю, test. ****. ch не имеет записи MX и не используется для получения почты.

А теперь общий совет:

Это мой подход к спутниковым почтовым ящикам, которые просто отправляют почту (когда у вас нет test. ***. Ch в качестве отдельного почтового домена).

На главном почтовом сервере я создаю учетную запись для отправки почты для каждого из моих серверов, я использую эту информацию учетной записи для ретрансляции всей почты на главный почтовый сервер, чтобы он мог позаботиться о дальнейшей доставке. Чтобы настроить это, просмотрите параметры smtp_sasl.

После этого создайте файл / etc / postfix / generic со следующим содержимым:

@test.*****.ch  server.test@*****.ch

и запустите:

postmap hash:/etc/postfix/generic

Теперь добавьте в файл main.cf:

smtp_generic_maps = hash:/etc/postfix/generic

И для хорошей меры пересылайте почту для root (через / etc / aliases или /root/.forward), чтобы перенаправить всю почту для root на адрес электронной почты системного администратора.

Конечно, после всего этого вам необходимо перезапустить Postfix.

Все это решает несколько проблем:

  1. Вся почта, приходящая из системы, имеет домен test. *****. Ch, создавая общую карту, мы говорим Postfix заменить test. *****. Ch на *****. Ch, который является действующий домен электронной почты с MX
  2. Поскольку мы аутентифицируемся на удаленном почтовом сервере, мы, вероятно, можем пропустить множество проверок, которые не могут пройти неаутентифицированные пользователи.
  3. Почта для root перенаправляется на правильный почтовый ящик

Выполняет ли домен получателя проверку отправителя? и если да, то у test.xxxxx.ch правильные записи DNS и / или MX. Что говорят журналы на принимающем хосте, поскольку они предоставят больше информации. Я бы удостоверился, что test.xxxx.ch имеет правильный dns / mx и принимает входящее соединение, которое будет отвечать на RCPT TO для apache@test.xxxxx.ch, так что, когда принимающий хост пытается сделать отправитель, проверьте его пройдет.

Насколько я могу судить, конечному серверу не нравится отправитель apache@test.***.ch

Вы можете попробовать добавить myorigin = $mydomain в Postfix main.cf Файл конфигурации