URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 67689
[ Назад ]

Исходное сообщение
"конфигурирование sendmail"

Отправлено vitaly , 19-Июл-06 12:55 
Здравствуйте.

Вопрос такой: есть sendmail 8.13.7 , иногда на некоторые адреса почта не уходит

например проблемма возникает , когда я отправляю сообщение из под локального пользователя Linux
при отключении электроэнергии формируется письмо от пользователя ups , при этом адрес в поле from идет как ups@hostname
где hostname - это имя компа из файла hosts

для того , чтобы обратный адрес был корректный , я использую механизм genericsdomain куда прописываю слово hostname
в genericstable пишу
ups ups@domain.ru
где domain.ru - это реальный домен, т.е. на уровне sendmail я меняю во всех письмах от пользователя ups с компа hostname обратный адрес на корректный ups@domain.ru

таким образом получаю в заголовке письма корректный адрес ups@domain.ru

НО при отправке письмо зависает в очереди с ошибкой
ошибка 450 <hostname> : Host not found

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

как это можно победить?


Содержание

Сообщения в этом обсуждении
"конфигурирование sendmail"
Отправлено vitaly , 21-Июл-06 05:58 
>Здравствуйте.
>
>Вопрос такой: есть sendmail 8.13.7 , иногда на некоторые адреса почта не
>уходит
>
>например проблемма возникает , когда я отправляю сообщение из под локального пользователя
>Linux
>при отключении электроэнергии формируется письмо от пользователя ups , при этом адрес
>в поле from идет как ups@hostname
>где hostname - это имя компа из файла hosts
>
>для того , чтобы обратный адрес был корректный , я использую механизм
>genericsdomain куда прописываю слово hostname
>в genericstable пишу
>ups ups@domain.ru
>где domain.ru - это реальный домен, т.е. на уровне sendmail я меняю
>во всех письмах от пользователя ups с компа hostname обратный адрес
>на корректный ups@domain.ru
>
>таким образом получаю в заголовке письма корректный адрес ups@domain.ru
>
>НО при отправке письмо зависает в очереди с ошибкой
>ошибка 450 <hostname> : Host not found
>
>обратный адрес корректен , но в служебной информации в шапке письма ,
>где идет цепочка серверов , через которое прошло это письмо все
>равно пишется hostname
>и удаленный почтовый сервер скорее всего в целях борьбы со спамом вытаскивает
>из внутренностей письма это внутреннее имя хоста hostname и пытается его
>отресолвить. Естественно хоста с таким именем в интренете нет , меня
>посылают с ошибкой.
>
>как это можно победить?
up


"конфигурирование sendmail"
Отправлено tonikas , 21-Июл-06 11:46 
Непонятно что-то.
450 выдает удаленный релей?
Вообще ты что-то странное рассказываешь. У меня очень много подобных писем идет от апача например: www@localhost, при этом в generic не прописано ничего, а поле From: при этом такое: www@domain.ru - это домен мой. И никто эти письма не режет.


"конфигурирование sendmail"
Отправлено tonikas , 21-Июл-06 11:47 
Покажи заголовки

"конфигурирование sendmail"
Отправлено vitaly , 24-Июл-06 12:51 
>Покажи заголовки

вот конкретный пример

есть комп в локалке с установленным лотусом - comp.lotus
отправляю из него письмо на адрес +7913********@sms.krasmts.ru
письмо , сформированное в лотусе идет на комп, подключенный в инет - sendmail.host, там sendmail, которая дальше пробрасывает письмо в инет

98% всей почты ходит по такой схеме и не ругается , однако вот например на домен sms.krasmts.ru письма повисают с ошибкой
450 <sendmail.host>: Helo command rejected: Host not found      

вот заголовок письма :

MDeferred: 450 <sendmail.host>: Helo command rejected: Host not found      
rRFC822; +7913********@sms.krasmts.ru                                            
RPFD:<+7913********@sms.krasmts.ru>                                              
H?P?Return-Path: <іg>                                                          
H??Received: from comp.lotus (comp.lotus [192.168.0.3])                
        by sendmail.host (8.13.7/8.13.7) with ESMTP id k6O8XlUP001303      
        for <+7913*******@sms.krasmts.ru>; Mon, 24 Jul 2006 16:33:47 +0800      
H??Subject: test                                                                
H??To: +7913*******@sms.krasmts.ru                                              
H??X-Mailer: Lotus Notes Release 7.0 August 18, 2005                            
H??Message-ID: <OF92132366.B7D1978B-ON472571B5.00347A2C-472571B5.0034838D@domain.ru>                                                                        
H??From: =?KOI8-R?B?4czGxdLP1yD3ydTBzMnK?= <admin@domain.ru>                  
H??Date: Mon, 24 Jul 2006 16:33:35 +0700                                        

спрашивается , почему он пишет ошибку и не хочет принимать письмо?
где он выдрал этот sendmail.host , он в заголовке только раз упоминается как промежуточный сервер , а в поле from корректный адрес admin@domain.ru
что то не могу понять

куда копать ?

спасибо


"конфигурирование sendmail"
Отправлено antoshkin , 25-Июл-06 13:13 
У тебя эта машина и называется sendmail.host?
Если да, то тогда сендмэйл по helo отвечает sendmail.host - и тут-то косяк, потому как по helo он должен сказать свое нормальное FDQN-имя.

"конфигурирование sendmail"
Отправлено vitaly , 27-Июл-06 04:54 
>У тебя эта машина и называется sendmail.host?
>Если да, то тогда сендмэйл по helo отвечает sendmail.host - и тут-то
>косяк, потому как по helo он должен сказать свое нормальное FDQN-имя.
>

sendmail.host - это имя этой машины прописанное в файле hosts
т.е. мне надо везде вписать имя хоста , которое можно отресолвить из Интернета?


"конфигурирование sendmail"
Отправлено antoshkin , 28-Июл-06 18:52 
>sendmail.host - это имя этой машины прописанное в файле hosts
>т.е. мне надо везде вписать имя хоста , которое можно отресолвить из
>Интернета?

Sendmail при отправке письма удаленному почтовику по helo отвечает то, что у тебя выдается по команде #hostname. Это по дефолту. (чтобы проверить - отправь письмо куда-нибудь на мэйл.ру и посмотри заголовки, там пишется, что твой сендмыл сказал по хело)
Если hostname менять нельзя, можно тупо сказать sendmail'у чтоб по хело он отвечал не имя машины, а то, что надо - это надо конфиги править.
Это важный момент. Т.к. я например проверяю helo, и если оно неправильное (не FDQN, имя моего хоста, локалхост и т.п) - REJECT NAH

Файл hosts тут как бы ни при чем.


"конфигурирование sendmail"
Отправлено antoshkin , 28-Июл-06 18:54 
>sendmail.host - это имя этой машины прописанное в файле hosts
>т.е. мне надо везде вписать имя хоста , которое можно отресолвить из
>Интернета?

Посмотрел еще раз внимательно заголовки, да
sendmail.host - это так называется у тебя машина. Назови ее нормально, чтоб можно было это имя отресолвить во вне - и будет всё нормально.
Уж как это делать - поди не надо объяснять?



"конфигурирование sendmail"
Отправлено vitaly , 31-Июл-06 13:09 
объясните пожалуйста как отучить sendmail на helo говорить hostname машины

уже что только не делал :
пробовал править файлы /etc/mail/local-host-names , /etc/mail/genericdomain , /etc/hosts

ни на что не реагирует , смотри заголовки письма - имя компа меняется по логам , но на команду helo sendmail все равно отвечает hostname

можно ли через sendmail.mc либо sendmail.cf можно принудительно заставить ее отвечать имя , которое можно отресолвить?



"конфигурирование sendmail"
Отправлено vitaly , 01-Авг-06 06:14 
up

"конфигурирование sendmail"
Отправлено vitaly , 02-Авг-06 05:51 
>up


up


"конфигурирование sendmail"
Отправлено vitaly , 02-Авг-06 07:38 
все , победил
надо вносить изменения в /etc/hosts БОЛЬШИМИ буквами , иначе не реагирует