LINUX.ORG.RU
ФорумAdmin

Проблема с sendmail


0

0

Как заставить sendmail отправлять почту по MX записи хоста, а не локально?

Ситуация: есть новый сервер test.ru и старый сервер test.ru (он уже только по IP откликается).

MX запись домена test.ru указывает на старый сервер, но если я с нового сервера test.ru отправляю почту на user@test.ru, то sendmail пытается доставить её локально. Как это исправить?

★★★★★

см. /etc/mail/local-host-names

sdio ★★★★★
()
Ответ на: комментарий от birdie

/etc/mail/local-host-names

Если в этом файле указан test.ru, то почта будет доставлена майлером "local" и до mx (mailer: esmtp) не дойдет.

Дальнейшие действия зависят от желаемого поведения двух вышеозначенных почтовых серверов. Мне пока не понятно какое поведение ожидается от этих серверов, кто какие домены должен обслуживать и как.

sdio ★★★★★
()
Ответ на: комментарий от sdio

> Мне пока не понятно какое поведение ожидается от этих серверов, кто какие домены должен обслуживать и как.

Старый mail server1 имеет некий IP адрес и локальное доменное имя test.ru.

Новый сервер имеет доменное имя test.ru и MX запись mail.test.ru, которая имеет IP адрес старого mail server'a.

Нужно, чтобы почта с нового сервера отправлялась не локально, а по MX записи. Т.е. письма, которые отправляются с нового сервера по адресу user@test.ru доставлялись не локально, а по MX записи, т.е. на старый почтоый сервер.

Так понятней?

birdie ★★★★★
() автор топика
Ответ на: комментарий от birdie

Нет не понятнее. Это повтор первого поста и ноль доп. информации.

Если убрать test.ru из /etc/mail/local-host-names, то этот сервер будет по мх пересылать письмо, но перестанет принимать письма извне для домена @test.ru -- поэтому и спрашивал о полном поведении серверов кто за что отвечает (какова схема раутинга почты)

sdio ★★★★★
()
Ответ на: комментарий от sdio

Почта, по уму, должна _вся_ сваливаться на старый сервер - вот и весь routing. Новый сервер вообще не должен принимать никакую почту, кроме как на user@localhost.

test.ru в /etc/mail/local-host-names на новой машине не прописан, т.к. в данный момент sendmail в абсолютно default'ной конфигурации.

birdie ★★★★★
() автор топика
Ответ на: комментарий от birdie

# grep '^Cw' /etc/mail/sendmail.cf
Cwlocalhost    #должно быть

Если мх указывает на старый сервер и test.ru не в списке 
обслуживаемых доменов, то все должно быть нормально.

Посмотри как sendmail обрабатывает адрес получателя.

# /usr/sbin/sendmail -d0.1 -bt
[SKIP]
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = mailrelay
(canonical domain name) $j = mailrelay.domain.co.il
(subdomain name) $m = domain.co.il
(node name) $k = mailrelay
========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 sergey@domain.co.il
canonify           input: sergey @ domain . co . il
Canonify2          input: sergey < @ domain . co . il >
Canonify2        returns: sergey < @ domain . co . il . >
canonify         returns: sergey < @ domain . co . il . >
parse              input: sergey < @ domain . co . il . >
Parse0             input: sergey < @ domain . co . il . >
Parse0           returns: sergey < @ domain . co . il . >
Parse1             input: sergey < @ domain . co . il . >
MailerToTriple     input: < > sergey < @ domain . co . il . >
MailerToTriple   returns: sergey < @ domain . co . il . >
Parse1           returns: $# esmtp $@ domain . co . il . $: sergey < @ domain . co . il . >
parse            returns: $# esmtp $@ domain . co . il . $: sergey < @ domain . co . il . >
>
>
> 3,0 sergey@mailrelay.domain.co.il
canonify           input: sergey @ mailrelay . domain . co . il
Canonify2          input: sergey < @ mailrelay . domain . co . il >
Canonify2        returns: sergey < @ mailrelay . domain . co . il . >
canonify         returns: sergey < @ mailrelay . domain . co . il . >
parse              input: sergey < @ mailrelay . domain . co . il . >
Parse0             input: sergey < @ mailrelay . domain . co . il . >
Parse0           returns: sergey < @ mailrelay . domain . co . il . >
Parse1             input: sergey < @ mailrelay . domain . co . il . >
Parse1           returns: $# local $: sergey
parse            returns: $# local $: sergey

____________________________________________________________________

На крайний случай:
# cd /etc/mail
# vi sendmail.mc
FEATURE(`mailertable',`hash -T<TMPF> /etc/mail/mailertable')

#vi /etc/mail/mailertable
test.ru   <TAB>    esmtp:[oldserv.test.ru]

# make
или
   # makemap hash mailertable < mailertable
   # m4 sendmail.mc > sendmail.cf

# /etc/init.d/sendmail reload

sdio ★★★★★
()
Ответ на: комментарий от sdio

# /usr/sbin/sendmail -d0.1 -bt
 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
                NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS
                USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = test
  (canonical domain name) $j = test.ru
         (subdomain name) $m = ru
              (node name) $k = test.ru
========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 user@test.ru
canonify           input: user @ test . ru
Canonify2          input: user < @ test . ru >
Canonify2        returns: user < @ test . ru . >
canonify         returns: user < @ test . ru . >
parse              input: user < @ test . ru . >
Parse0             input: user < @ test . ru . >
Parse0           returns: user < @ test . ru . >
ParseLocal         input: user < @ test . ru . >
ParseLocal       returns: user < @ test . ru . >
Parse1             input: user < @ test . ru . >
Parse1           returns: $# local $: user
parse            returns: $# local $: user

Зараза хочет отсылать почту локально!

birdie ★★★★★
() автор топика
Ответ на: комментарий от sdio

> На крайний случай:

не помогло :(((

birdie ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.