LINUX.ORG.RU
решено ФорумAdmin

Exim не отправляется почта на свой домен

 , ,


0

1

Добрый день! Есть сервер с сайтом (к примеру, test.ru), хостинг почты для этого домена находится на другом сервере. При попытке отправить почту на домен test.ru, отправки не происходит. Как я понял это из-за того, что exim проверяет по домену почты работает ли там сервер. И в случае с доменом test.ru запрос идет на localhost и собственно там почтового сервера не обнаруживает. Как в конфигах exim указать, что искать почтовый сервер по домену test.ru надо не на localohst, а другом месте? Сама почта хостится на серверах goolgle.

из обьяснения я ничего не понял.
host -t mx test.ru возвращает localhost что-ли?
покажи ошибку из лога exim

bass ★★★★★ ()

Вобще не понятно, как почта оказывается на сайте test.ru, если в MX прописан другой адрес. И эту фразу:

Как я понял это из-за того, что exim проверяет по домену почты работает ли там сервер.

я вобще не понял, какую ошибку даёт exim, что пишет в логи. Возможно, проблема в том, что exim считает test.ru локальным доменом.

Как в конфигах exim указать, что искать почтовый сервер по домену test.ru надо не на localohst, а другом месте?

Он и будет искать по MX-записи, как только перестанет считать почту локальной (при условии что есть MX-запись).

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

host -t mx test.ru возвращает localhost что-ли?

нет, тут все правильно возвращает:

test.ru mail is handled by 5 alt2.aspmx.l.google.com.
test.ru mail is handled by 1 aspmx.l.google.com.
test.ru mail is handled by 10 aspmx2.googlemail.com.
test.ru mail is handled by 5 alt1.aspmx.l.google.com.

Ошибка из логов

** test@test.ru: Unknown user
test@test.ru: error ignored
Completed
Message is frozen

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

я всё равно не понимаю что есть и что хочется, но по-моему, тебе нужно сделать твой exim релеем до гуглопочты, тогда читать в сторону smarthost

bass ★★★★★ ()
Последнее исправление: bass (всего исправлений: 1)
Ответ на: комментарий от bass

Есть домен, А-записи домена указывают на хостинг, MX-записи на гуглопочту.

> host -t mx test.ru
test.ru mail is handled by 5 alt2.aspmx.l.google.com.
test.ru mail is handled by 1 aspmx.l.google.com.
test.ru mail is handled by 10 aspmx2.googlemail.com.
test.ru mail is handled by 5 alt1.aspmx.l.google.com.

На хостинге почта отправляется через exim. При попытке отправки почты на свой домен в логах exim вижу

** test@test.ru: Unknown user
test@test.ru: error ignored
Completed
Message is frozen
и почта не отправляется.

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

Нужно исключить домен test.ru из списка доменов exim-a. Если никаких других доменов нет, то или вообще убирай exim, и почту с хостинга шли клиентом, или настраивай его как релей, где smarthost-ом будет выступать гуглопочта.
В debian/ubuntu этот режим exim-a называется satellite

bass ★★★★★ ()

Добрый день,

поправьте секцию routers — измените domains = !+dummy_domains на domains = !+dummy_domains : !+local_domains или на domains = !+local_domains

Сделайте так:

begin routers
        dnslookup:
                driver = dnslookup
                domains = !+dummy_domains : !+local_domains
                transport = remote_smtp
                ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
                self = pass
                no_more

Почта будет доставляться локально

int13h ★★★★★ ()
Последнее исправление: int13h (всего исправлений: 1)
Ответ на: комментарий от int13h

В конфигах так и есть

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
# if ipv6-enabled then instead use:
# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
  no_more

А для самого local_domains в конфиге следущее

domainlist local_domains = @ : localhost : localhost.localdomain

А еще есть

primary_hostname = test.ru
И как я понимаю как раз primary_hostname надо сделать пустым, чтобы в local_domains = @ не подставлялся primary_hostname. Так?

delimer ()

так, я вас не понял.

Вопросы

1) Где находится почтовый домен? На каком сервере?

2) Установлен ли там MTA?

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

1) Где находится почтовый домен? На каком сервере?
2) Установлен ли там MTA?

На сервере создан веб-хостинг на котором крутится сайт (домен test.ru). Для отправки почты настроен exim. Скриптами почта нормально уходит на все адреса кроме тех, где домен test.ru.

Сам почтовый сервер домена test.ru находится на серверах гугла.

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

exim считает test.ru своим доменом, он не должен так считать. от какого адреса exim отправляет почту? отправляет ли он почту через гугл с авторизацией или сам?

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

exim считает test.ru своим доменом, он не должен так считать. от какого адреса exim отправляет почту? отправляет ли он почту через гугл с авторизацией или сам?

Отправляет от адреса noreply@test.ru, отправляет без аторизации, сам.

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

Для отправки почты настроен exim.

Отлично, тогда давайте логи отправки письма.

Грепните

/var/log/exim/main.log

на отправку письма на ваш сервер.

И покажите.

Могу предположить, что

1) У Вас не настрое верно PTR

2) Кем вы представляетесь? должно соответствовать primary_hostname записи в ptr.

Выполните

$hostname your_ip

your_ip — ip-адрес сервера, который отправляет.

3) Настроена ли SPF запись для домена, от которого вы отправляете письмо?

Выполните: $dig txt yourdomain.com

4) DKIM насколько понял, у вас нет.

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

Отлично, тогда давайте логи отправки письма.

** test@test.ru: Unknown user
test@test.ru: error ignored
Completed
Message is frozen

1) У Вас не настрое верно PTR
2) Кем вы представляетесь? должно соответствовать >primary_hostname записи в ptr.
Выполните
$hostname your_ip
your_ip — ip-адрес сервера, который отправляет.

>nslookup xx.xx.xx.xx
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
xx.xx.xx.xx.in-addr.arpa name=test.ru.

3) Настроена ли SPF запись для домена, от которого вы >отправляете письмо?
Выполните: $dig txt yourdomain.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> txt test.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64077
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.ru.                       IN      TXT

;; ANSWER SECTION:
test.ru.                21599   IN      TXT     "v=spf1 a:test.ru ip4:xx.xx.xx.xx ip6:xx:xx:xx:xx:xx:xx:xx:xx include:_spf.google.com ~all"

;; Query time: 44 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Mar 28 17:58:03 2018
;; MSG SIZE  rcvd: 128

4) DKIM насколько понял, у вас нет.

Есть и всё настроено

delimer ()
Ответ на: комментарий от int13h

У Вас не настрое верно PTR
DKIM насколько понял, у вас нет.
Кем вы представляетесь? должно соответствовать primary_hostname записи в ptr.

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

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

ну тогда логично, что если он отправляет сам , то по умолчанию считает test.ru своим. я не работаю с exim в общих чертах надо либо указать транспортом, что test.ru у нас на smtp:[real.test.ru]:25

Сейчас коллеги по exim тут подскажут, думаю.

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

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

в данном случае, убирать домен из обслуживаемых локально.

В принципе я уже догадался. Ниже привожу часть конфига. Достаточно ли будет в строке domainlist local_domains убрать @ и отчистить primary_hostname?

primary_hostname = test.ru

domainlist local_domains = @ : localhost : localhost.localdomain

dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
# if ipv6-enabled then instead use:
# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
  no_more
delimer ()
Ответ на: комментарий от delimer

отчистить primary_hostname

это значение должно быть в PTR. В принципе, не важно, что там будет, у меня вот так:

host 138.128.217.55
55.217.128.138.in-addr.arpa domain name pointer mail.filippov.by.

Т.е. им мы представляемся. Т.е. имя самого хоста.

Убрали — ок. Сейчас проверьте.

Также проверьте SPF.

В моем случае, для примера, почта на Яндексе и разрешена приемка с моего «микросервера»:

 » dig mx filippov.by +short
10 mx.yandex.ru.
 » dig txt filippov.by +short
"v=spf1 ip4:138.128.217.55  include:_spf.yandex.net ~all"
int13h ★★★★★ ()
Последнее исправление: int13h (всего исправлений: 2)

В итоге в решении проблемы помогло в конфиге exim поправить строку и перезапустить exim.

<ыло:

domainlist local_domains = @ : localhost : localhost.localdomain

Стало:

domainlist local_domains = localhost : localhost.localdomain

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