Почта уходит не по всем адресам

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-17 23:59:24

Всем привет! Прошу знатоков помочь начинающему.
Не так давно я взял себе дедик с целью увеличить быстродействие скриптов. Фундаментальных знаний по администрированию не имею и сейчас столкнулся с непонятной проблемой. Прошу намекнуть на пути решения проблемы, готов учиться и читать (собственно на форум пришел после получаса, проведенного с мануалом по EXIM, но боюсь что полностью изучить его мне не хватит усидчивости)

Моя конфигурация:
OS Centos
Почту на сервере не поднимал, использую google apps (получать ничего не надо)
Использую несколько виртуальных доменов на одном сервере
Exim - дефолтный конфиг
Сервер новый, в блеклистах не записан, я проверил

Скрипты отправляют почту и она то приходит на адрес, то не приходит. На mail и rambler, кажется, не приходила вообще. На google и yandex - чаще приходит, но бывает, что и нет.

Отправка письма со скрипта с домена domain.com

Вот что вижу в логах /var/log/exim/main.log
2011-04-17 22:47:01 1QBYrx-0000wa-5I => **@domain.com R=dnslookup T=remote_smtp H=ASPMX.L.GOOGLE.COM [74.125.79.27] X=TLSv1:RC4-SHA:128
2011-04-17 22:47:01 1QBYrx-0000wa-5I Completed
письмо доставлено

2011-04-17 22:47:33 1QBYsX-0000wd-Kx <= apache@CentOS-55-64-minimal U=apache P=local S=576
2011-04-17 22:47:35 1QBYsX-0000wd-Kx => ***@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [74.125.77.27] X=TLSv1:RC4-SHA:128
2011-04-17 22:47:35 1QBYsX-0000wd-Kx Completed
письмо доставлено

2011-04-17 22:48:06 1QBYt4-0000wg-CZ <= apache@CentOS-55-64-minimal U=apache P=local S=623
2011-04-17 22:48:06 1QBYt4-0000wg-CZ ** ***@any-other-domain.net: Unrouteable address
2011-04-17 22:48:06 1QBYt4-0000wi-K1 <= <> R=1QBYt4-0000wg-CZ U=exim P=local S=1465
2011-04-17 22:48:06 1QBYt4-0000wg-CZ Completed
2011-04-17 22:48:06 1QBYt4-0000wi-K1 User 0 set for local_delivery transport is on the never_users list
2011-04-17 22:48:06 1QBYt4-0000wi-K1 == root@centos-55-64-minimal <apache@CentOS-55-64-minimal> R=localuser T=local_delivery defer (-29): User 0 set for local_delivery transport is on the never_users list
2011-04-17 22:48:06 1QBYt4-0000wi-K1 ** root@CentOS-55-64-minimal <apache@CentOS-55-64-minimal>: retry timeout exceeded
2011-04-17 22:48:06 1QBYt4-0000wi-K1 root@CentOS-55-64-minimal <apache@CentOS-55-64-minimal>: error ignored
2011-04-17 22:48:06 1QBYt4-0000wi-K1 Completed
письмо НЕ доставлено
само собой, это работающий ящик под google apps, письма на него приходят

2011-04-17 22:49:47 1QBYuh-0000wk-Ie <= apache@CentOS-55-64-minimal U=apache P=local S=621
2011-04-17 22:49:47 1QBYuh-0000wk-Ie ** ***@mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<apache@CentOS-55-64-minimal> SIZE=1661: host mxs.mail.ru [94.100.176.20]: 550 Unroutable address
2011-04-17 22:49:47 1QBYuh-0000wn-Se <= <> R=1QBYuh-0000wk-Ie U=exim P=local S=1582
2011-04-17 22:49:47 1QBYuh-0000wk-Ie Completed
2011-04-17 22:49:47 1QBYuh-0000wn-Se User 0 set for local_delivery transport is on the never_users list
2011-04-17 22:49:47 1QBYuh-0000wn-Se == root@centos-55-64-minimal <apache@CentOS-55-64-minimal> R=localuser T=local_delivery defer (-29): User 0 set for local_delivery transport is on the never_users list
2011-04-17 22:49:47 1QBYuh-0000wn-Se ** root@CentOS-55-64-minimal <apache@CentOS-55-64-minimal>: retry timeout exceeded
2011-04-17 22:49:47 1QBYuh-0000wn-Se root@CentOS-55-64-minimal <apache@CentOS-55-64-minimal>: error ignored
2011-04-17 22:49:47 1QBYuh-0000wn-Se Completed
письмо НЕ доставлено

В чем дело? Как исправить? :-/
Спасибо заранее.
Последний раз редактировалось manefesto 2011-07-19 6:13:39, всего редактировалось 1 раз.
Причина: некропост

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение moury » 2011-04-18 4:04:39

Непонятно, что Вы, вообще, хотите от своей системы. Понятно, что поднимаете отдельно стоящий сервер, который только отправляет почту. Какую? Куда?
Если необходимо отправлять только отчеты на конкретные адреса, настройка - одна, минимальная.
Если будут рассылки с форума всем его участникам, степень интеграции с настройками домена на google apps и DNS должна быть другой.
2011-04-17 22:49:47 1QBYuh-0000wk-Ie ** ***@mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<apache@CentOS-55-64-minimal> SIZE=1661: host mxs.mail.ru [94.100.176.20]: 550 Unroutable address
На mail.ru срабатывает защита от спама, потому что Вы после установки сервера не изменили его имя на соответствующее стандартам.
2011-04-17 22:48:06 1QBYt4-0000wg-CZ ** ***@any-other-domain.net: Unrouteable address
Вот тут я могу напутать - слабоват я, все-таки, в экзиме. Впечатление, что попытки доставки по SMTP не было.
Может, ошибка DNS? У домена получателя MX-запись есть?
Сисадмин - вождь апачей

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-18 12:47:53

moury писал(а):Непонятно, что Вы, вообще, хотите от своей системы. Понятно, что поднимаете отдельно стоящий сервер, который только отправляет почту. Какую? Куда?
Если необходимо отправлять только отчеты на конкретные адреса, настройка - одна, минимальная.
Если будут рассылки с форума всем его участникам, степень интеграции с настройками домена на google apps и DNS должна быть другой.
просто несколько сайтов, никакого спама и тп. Отправки нечастые.
moury писал(а): 2011-04-17 22:49:47 1QBYuh-0000wk-Ie ** ***@mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<apache@CentOS-55-64-minimal> SIZE=1661: host mxs.mail.ru [94.100.176.20]: 550 Unroutable address

На mail.ru срабатывает защита от спама, потому что Вы после установки сервера не изменили его имя на соответствующее стандартам.


Будьте добры, скажите пожалуйста, как изменить это имя? Стандарты сам найду, если укажете точное имя переменных, которые надо изменить.


starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-18 13:26:16

спасибо за ответ! это в exim.conf? нашел.
а у меня несколько доменов на одном сервере, как можно сделать профили под домены? Может просто кто-то покажет пример конфига, я сам по аналогии попробую поставить. :oops:

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение blade_007 » 2011-04-18 13:39:51

domainlist local_domains = first_domain : second_domain : localdomain:
Что касается конфига - тут еще и сайт есть с кучей примеров.

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение shlash » 2011-04-19 14:13:11

@any-other-domain.net: Unrouteable address
Означает, что не в состоянии найти почтоприёмник получателя. Ошибка ДНС, отсутствие MX или A записей для домена получателя.

@mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM: <apache@CentOS-55-64-minimal>
Более конкретно, ругается на CentOS-55-64-minimal - необходимо установить правильный hostname, по всей видимости должно быть domain.com

Сделать nslookup ip_address_ваш_дедик и полученное имя вписать в конфиг екзима primary_hostname = имя_вашего_ip_адреса

Как должно быть, правильные настройки ДНС для почты, почитайте вот тут - http://forum.ixbt.com/topic.cgi?id=7:26978

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-19 22:53:23

shlash писал(а): @mail.ru R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM: <apache@CentOS-55-64-minimal>
Более конкретно, ругается на CentOS-55-64-minimal - необходимо установить правильный hostname, по всей видимости должно быть domain.com

Сделать nslookup ip_address_ваш_дедик и полученное имя вписать в конфиг екзима primary_hostname = имя_вашего_ip_адреса
Спасибо огромное, shlash, изменил primary_hostname по Вашему совету и почта начала исправно уходить.

В веб-интерфейсы письмо приходит в идеальном виде, поля "От" и "Для" заполнены правильно: стоит имя отправителя и емейл, которые я проставляю в скрипте.
А вот Outlook почему-то показывает поля "От" в таком виде:
From: Apache [mailto:apache@static.213-239-###-###.clients.your-server.de] On Behalf Of MyName
При этом если нажать "Ответить", то получатель письма проставляется опять же корректно.

Прошу прощения за тупость, а это как исправить? Есть ли какая-то чудо опция, как Вы выше подсказали? :)

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение moury » 2011-04-20 15:44:55

Наверняка в письме - два заголовка From, и есть заголовок Return-path.
Большинство почтовых клиентов отображают один из From, а аутглюк - другой.

Рискну предположить, что скрипт отправляет почту, каким-либо способом запуская команду sendmail. Если это так, нужно изменить процедуру отправки почты, чтобы exim брал отправителя из командной строки. Посмотрите в спецификации на exim описание параметров командной строки.

Более подробного совета дать не могу: нужно представлять, как Ваши скрипты работают, ибо мест, где можно вносить такие изменения - больше двух.

Hint: Если скрипты - на php, то достаточно включить отправку почты через SMTP, а не через sendmail (см. php.ini).
Сисадмин - вождь апачей

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение shlash » 2011-04-20 22:55:45

starkievх
В данном случае, сначала надо посмотреть исходный текст письма со всеми заголовками. Возможно From задваивается. Не зная и не понимая, что произошло, исправить ничего невозможно. Чудес не бывает. Все опции описаны в документации - http://www.exim.org/exim-html-current/d ... index.html

moury
Скрипты запускается из под Апача, работающего под юзером apache, на хосте static.213-239-###-###.clients.your-server.de и отправляют почту php функцией mail(). Абсолютно же очевидно.

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-20 23:38:30

shlash писал(а):starkievх
В данном случае, сначала надо посмотреть исходный текст письма со всеми заголовками. Возможно From задваивается. Не зная и не понимая, что произошло, исправить ничего невозможно. Чудес не бывает. Все опции описаны в документации - http://www.exim.org/exim-html-current/d ... index.html

moury
Скрипты запускается из под Апача, работающего под юзером apache, на хосте static.213-239-###-###.clients.your-server.de и отправляют почту php функцией mail(). Абсолютно же очевидно.
shlash, спасибо за ссылку. Буду читать.
Собственно у меня ситуация простая, дефолтный конфиг экзима с единственной порекомендованной ( :good: ) Вами правкой, а именно - проставленным primary_hostname.

На всякий случай привожу заголовки письма, высланного на мейл-ру. Может быть, диагноз будет поставить легко?

From apache@static.213-239-###-###.clients.your-server.de Thu Apr 21 00:17:43 2011
Return-path: <apache@static.213-239-###-###.clients.your-server.de>
Received: from [213.239.205.107] (port=48074 helo=static.213-239-###-###.clients.your-server.de)
by mx23.mail.ru with esmtp
id 1QCdqJ-0004yJ-00
for my_mail@mail.ru; Thu, 21 Apr 2011 00:17:43 +0400
Received-SPF: none (mx23.mail.ru: 213.239.205.107 is neither permitted nor denied by domain of static.213-239-###-###.clients.your-server.de) client-ip=213.239.205.107; envelope-from=apache@static.213-239-###-###.clients.your-server.de; helo=static.213-239-###-###.clients.your-server.de;
X-Mru-BL: 0
X-Mru-PTR: static.213-239-###-###.clients.your-server.de
X-Mru-NR: 1
X-Mru-OF: Linux (ethernet/modem)
X-Mru-RC: DE
Received: from apache by static.213-239-###-###.clients.your-server.de with local (Exim 4.63)
(envelope-from <apache@static.213-239-###-###.clients.your-server.de>)
id 1QCdqH-0000zW-Lu
for my_mail@mail.ru; Wed, 20 Apr 2011 22:17:41 +0200
To: my_mail@mail.ru
Subject: =?utf-8?b?VGVzdA==?=
MIME-Version: 1.0
Content-type: text/plain; charset=utf-8
From: my-sender@email.ru
Reply-To: my-sender@email.ru
X-Mailer: PHP/5.3.6
Content-type: text/plain; charset=utf-8
Message-Id: <E1QCdqH-0000zW-Lu@static.213-239-###-###.clients.your-server.de>
Sender: Apache <apache@static.213-239-###-###.clients.your-server.de>
Date: Wed, 20 Apr 2011 22:17:41 +0200
X-Spam: Not detected
X-Mras: OK

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение moury » 2011-04-21 9:30:12

Подтверждение моим словам: два заголовка From. Outlook, как и положено, видит только первый, а остальные почтовые клиенты этот заголовок переопределяют.
Я ошибся, думая, что адрес для ответа берется из Return-path, а он - из Reply-To.

starkiev, Вам сюда: http://ru2.php.net/manual/en/mail.configuration.php и сюда: http://www.lissyara.su/doc/exim/4.70/th ... mand_line/.

shlash, по каким признакам Вы поняли, что скрипты - на php? Я видел только, что письмо отправлено скриптом из-под апача.
Сисадмин - вождь апачей

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение shlash » 2011-04-21 15:02:39

starkievх
А теперь покажите фрагмент скрипта, в котором осуществляется отправка. Используется ли для этого какая-либо библиотека? И, да, на каком языке скрипт?

правило радиолюбителя - не крутить две ручки одновременно

exim
В случае, если в конфиге exim присутствует primary_hostname, её значение используется для формирования HELO/EHLO, при взаимодействии с удалённым сервером.
Если primary_hostname не определено, то, для формирования HELO/EHLO, используется общесистемный hostname.

apache
При отправке письма из под апача, базовыми методами, адрес отправителя (SMTP MAIL FROM) формируется из юзера, под которым работает апач, и общесистемного hostname.

primary_hostname - сейчас сделано правильно, не трогать, оставить как есть.
Системный hostname был также изменён с CentOS-55-64-minimal на бла-бла-бла-server.de
Наиболее простой вариант сейчас - установить hostname в один из ваших доменов.
Если требуется формировать исходящие от разных доменов, тогда сложнее. Необходимо взаимодействовать из скрипта с вашим локальным экзимом через SMTP, чтобы полностью контролировать MAIL FROM. Через какую-нибудь библиотеку, которая реализует этот метод.

moury
А широко ли сейчас распространено запускание, из под апача, чего либо, отличного от php? И вышеприведённая ссылка, опять же, почему-то на php. Хотя, казалось бы, никаких оснований для этого не было.

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-22 11:28:45

Спасибо за помощь!

Вот один из скриптов, который отправляет письмо. Все достаточно "попсово", на php

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

function sendmailer($to,$from,$subject,$msg){
$s="=?utf-8?b?".base64_encode($subject)."?="; 
$headers="MIME-Version: 1.0"."\r\n"."Content-type: text/plain; charset=utf-8"."\r\n"."From: ".$from."\r\n"."Reply-To: ".$from."\r\n"."Return-Path: ".$from."\r\n"."X-Mailer: PHP/".phpversion()."\r\n"."Content-type: text/plain; charset=utf-8";
if($sendPass=mail($to,$s,$msg,$headers)) return true; else return false;
}
Но как я говорил раньше, на сервере несколько сайтов, функции отправки чуть отличаются, но результат один - в аутлуке отправитель показывается как

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

Apache <apache@static.213-239-###-###.clients.your-server.de>; от имени; my-mail@mail.ru

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение shlash » 2011-04-22 15:41:50

угу, так и есть.. php, mail()

При формировании $headers убрать фрагмент "Return-Path: ".$from."\r\n".

Из консоли, что показывает hostname? Переустановите (от рута) hostname в один из ваших почтовых доменов (это ведь уже делали). Сейчас хотя бы так сделать. И посмотреть, что будет получаться. Возможно ещё надо будет /etc/hosts подправить.

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-22 16:22:51

При формировании $headers убрать фрагмент "Return-Path: ".$from."\r\n".
Сделал, ничего не изменилось.

в /etc/sysconfig/network hostnаme прописан как "CentOS-55-64-minimal"
Но ведь этот параметр в заголовках нигде не прописывается, там проставляется primary_hostname.
Чтобы изменить этот параметр надо будет перегружать сервере, так что пока этого сделать не могу. Ночью попробую. Хотя интуиция подсказывает, что раз нет CentOS-55-64-minimal в заголовках, то не очень-то изменение поможет.

а /etc/hosts у меня в Centos вообще нет... :-/

starkiev
проходил мимо
Сообщения: 8
Зарегистрирован: 2011-04-17 23:39:44

Re: Почта уходит не по всем адресам

Непрочитанное сообщение starkiev » 2011-04-23 2:16:17

Ночью попробую.
Попробовал. Опция hostnаme ничего в отправке почты не изменила :(

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

Re: Почта уходит не по всем адресам

Непрочитанное сообщение shlash » 2011-04-25 12:11:10

> Сделал, ничего не изменилось
Ничего и не должно было. Просто оно там совершенно лишнее.

> в /etc/sysconfig/network hostnаme прописан как "CentOS-55-64-minimal"
> Но ведь этот параметр в заголовках нигде не прописывается, там проставляется primary_hostname
> интуиция подсказывает, что раз нет CentOS-55-64-minimal в заголовках
primary_hostname в заголовках присутствует только там, где есть helo=.. , во всех остальных случаях используется hostname
значит накрутили где-то в другом месте. Интуиции здесь не место, нужно руководствоваться знаниями.

> Чтобы изменить этот параметр надо будет перегружать сервер
Чтобы получить текущее значение, надо в консоли набрать hostname и нажать клавишу Enter.
Чтобы установить новое значение, надо в консоли, от рута, набрать hostname новое_значение и нажать клавишу Enter.
Сейчас установлено что?

> а /etc/hosts у меня в Centos вообще нет
И как же вы без него живёте?... Каким образом, например, определяется localhost?
На мой взгляд, нарушена самоидентификация, несконфигурирован резольвер, своё имя получает через внешний ДНС.
Содержимое /etc/host.conf, /etc/resolv.conf ?

На таком уровне, к сожалению, больше ничем помочь не могу. Тем более, что особенностей CentOS не знаю и телепатическими способностями не владею. Могу посоветовать повышать скилл "Фундаментальных знаний по администрированию". Сходите в магазин и купите какую-нибудь книжку типа Линукс для чайников. Поскольку тут наблюдается отсутствие базовых знаний.