Страница 1 из 1

Sendmail: локальный домен и внешний MX.

Добавлено: 2009-11-12 2:35:09
Bionicman
Приветствую. На днях столкнулся с проблемой одной, наверняка кто-то уже решал подобную.

Имеется сервер (вернее, jail, но в данном случае всё равно). У него установлен hostname, предположим, domainname.tld. Т.е.:

Код: Выделить всё

[root@domainname.tld /etc/mail]$ hostname
domainname.tld
На этом сервере живёт web-сайт с аналогичным доменным именем. Для данного доменного имени ещё есть в DNS-зоне MX-записи, но смотрят они не на этот хост, а на google-почту:

Код: Выделить всё

[root@domainname.tld /etc/mail]$ host domainname.tld
domainname.tld has address 111.222.233.244
domainname.tld mail is handled by 10 aspmx4.googlemail.com.
domainname.tld mail is handled by 10 aspmx5.googlemail.com.
domainname.tld mail is handled by 1 aspmx.l.google.com.
domainname.tld mail is handled by 5 alt1.aspmx.l.google.com.
domainname.tld mail is handled by 5 alt2.aspmx.l.google.com.
domainname.tld mail is handled by 10 aspmx2.googlemail.com.
domainname.tld mail is handled by 10 aspmx3.googlemail.com.
На сервере стоит стандартная связка Apache+MySQL+PHP. Почтовая подсистема практически не тронутая и стандартная, представлена в виде штатного sendmail. При выполнении пользователями на этом сайте каких-либо определенных действий, генерируется письмо на адрес support@domainname.tld. Такой ящик заведён на google-почте, но письмо до него не доходит, так как сам сервер, где крутится сайт считает себя почтовым сервером для данного домена и пытается доставить почту локально (естественно, не находя такого пользователя на локальной машине, шлёт отлуп и письмо отправляется в газенваген). Нужно как-то сказать sendmail'у, что почта для *@domainname.tld не локальная, и нужно ее отправлять по обычной схеме (резолвить MX домена и слать все туда по SMTP).

Если сделать так:

Код: Выделить всё

[root@domainname.tld /etc/mail]$ sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $=w
localhost
domainname.tld
[111.222.233.244]
..., то видно, что действительно, sendmail считает данный домен локальным для почты, но подобного в конфигах sendmail я не нашел.

Кто сталкивался с подобной проблемой, подскажите, где в каких правилах что надо пофиксить?

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2009-11-12 15:18:11
---nebo---
особенность конфигурирования sendmail такова, что без 100 грамм там не разобраться :smile: ...посмотрите конфиг

ставте Postfix или Exim, и не будете иметь проблем

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2009-11-12 15:58:21
Bionicman
---nebo--- писал(а):особенность конфигурирования sendmail такова, что без 100 грамм там не разобраться :smile: ...посмотрите конфиг

ставте Postfix или Exim, и не будете иметь проблем
Мда, я уже смотрел конфиг sendmail... 100 грамм там мало будет. Нутром чую, что проблема решается одной строчкой. Если решение так и не найдется, то тогда уже буду ставить exim.

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2009-11-15 18:57:46
aorta
Вам наверное нужно использовать вот эти строки в файле /etc/mail/freebsd.mc

Код: Выделить всё

dnl # Uncomment and edit the following line if your outgoing mail needs to 
dnl # be sent out through an external mail server: 
dnl Dialup users should uncomment and define this appropriately
dnl define(`SMART_HOST', `your.isp.mail.server')
1. Заменить your.isp.mail.server имененем почтового сервера провайдера или вашим гугловским.
2. Удалить dnl перед define

Выполнить следующие команды, находясь в папке /etc/mail/:

Код: Выделить всё

# make cf
# make install
# make restart

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2009-11-16 5:45:40
Bionicman
Не помогло:

Код: Выделить всё

[root@domainname.tld /etc/mail]$ cat /var/log/maillog | grep nAG2cs8r041987
Nov 16 05:38:54 www sm-mta[41987]: nAG2cs8r041987: <support@domainname.tld>... User unknown
Nov 16 05:38:54 www sm-mta[41987]: nAG2cs8r041987: from=<root@domainname.tld>, size=176, class=0, nrcpts=0, proto=ESMTP, daemon=IPv4, relay=domainname.tld [111.222.233.244]
[root@domainname.tld /etc/mail]$ cat /var/log/maillog | grep nAG2cssi041986
Nov 16 05:38:54 www sendmail[41986]: nAG2cssi041986: from=root, size=176, class=0, nrcpts=1, msgid=<200911160238.nAG2cssi041986@domainname.tld>, relay=root@localhost
Nov 16 05:38:54 www sendmail[41986]: nAG2cssi041986: to=support@domainname.tld, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30176, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Nov 16 05:38:54 www sendmail[41986]: nAG2cssi041986: nAG2cssj041986: DSN: User unknown

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2010-01-31 12:38:01
Bionicman
Проблему не решил :(
Но смог от неё убежать, поставив exim :smile:

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2010-04-14 10:41:14
Volodymyr
Антологичная проблема. Связано с обратной зоной. Пока не разобрался как исправить но суть описана здесь - http://linux.ufaras.ru/sendmail_tips.html#3

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2010-04-27 11:57:18
Volodymyr
Суть проблемы: sendmail собирает имена хостов для локального раутинга почты, туда попадает и хостнейм машины (лечится созданием хостнейма машины отличного от робочего домена для почты, если есть способ оставить оригинальное имя, буду презнателен за совет) и обратная зона, собственно с ней и возникла проблема. Проблему решил так:

/etc/mail/freebsd.mc

Код: Выделить всё

MASQUERADE_AS(example.com)
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
define(`confDONT_PROBE_INTERFACES',`True')
define(`confHELO_NAME', `example.com')dnl
Потом пересобрать конфиг и перезапустить:

Код: Выделить всё

#cd /etc/mail && make aliases && make && cp example.com.cf sendmail.cf && cp example.com.submit.cf submit.cf && /etc/rc.d/sendmail restart
Буду благодарен за дополнительную информацию в данном направлении.

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2011-06-01 16:07:32
nikll
вы не поверите сколько времени можгут убить два опытных админа пытаясь победить эту херь!!!
ПОбедили!!!

надо в .mc добавить

define(`MAIL_HUB', `webdev-studio.ru.')dnl
define(`LOCAL_RELAY', `webdev-studio.ru.')dnl

после чего make all install reload

P.S.в верху топика писали что без 100гр не разобратся, они серьезно ошиблись в оценках понятности конфига сендмайла, на самом деле там ящщиком пахнет....

Re: Sendmail: локальный домен и внешний MX.

Добавлено: 2014-08-15 17:44:40
iqw.ru
Спасибо огромное!!!!!

Sendmail: локальный домен и внешний MX.

Добавлено: 2020-05-01 12:37:38
canny
в sendmail.cf

Код: Выделить всё

# shall we get local names from our installed interfaces?
O DontProbeInterfaces=True
Это исключит самоидентификацию mta c непрописанными в конфигах доменами