Проблемы с почтой и запись MX
На днях один из сотрудников переслал мне письмо-отчет о недоставке его электронного сообщения на внешний почтовый ящик. Как правило в таких письмах указывается и причина по которой письмо не было доставлено. В данном случае причина была следующей:
Router: Failed to connect to SMTP host domain.com because : The server is not responding. The server may be down or you may be experiencing network problems. Contact your system administrator if this problem persists.
Имя почтового домена я изменил в остальном все соответствует. Я объяснил сотруднику, что проблема с почтой не у нас, так как “не отвечает” почтовый сервер-получатель (The server is not responding). Но сотрудник ответил, что связывался с получателем и он клятвенно заверил, что у них проблем с почтой нет и что у них все работает и проблемы у нас.
Сколько раз я уже слышал все это. Ну да ладно. В данном конкретном случае все оказалось предельно просто. Сначала нужно было выяснить доступен ли их почтовый сервер из сети Интернет, а перед этим нужно было определить сам почтовый сервер. Для определения почтового сервера нужно сделать соответствующий DNS-запрос. В Linux я для этого пользуюсь командой dig, хотя можно воспользоваться и командой nslookup.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ dig domain.com mx ; <<>> DiG 9.6.1-P2 <<>> mx domain.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39693 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;domain.com IN MX ;; Query time: 92 msec ;; SERVER: 192.168.1.10#53(192.168.1.10) ;; WHEN: Mon Aug 16 11:29:59 2010 ;; MSG SIZE rcvd: 34 |
Здесь я запрашиваю запись MX для домена domain.com. Запись MX как раз и показывает тот сервер (или сервера), которые должны обрабатывать почтовый трафик. Но как видите для домена domain.com такой записи не существует.
Этот ответ я получил от нашего DNS-сервера (SERVER: 192.168.1.10#53(192.168.1.10)). На всякий случай решил спросить у NS-сервера для домена domain.com. Сначала определяем NS-сервера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ dig domain.com ns ;; QUESTION SECTION: ;domain.com. IN NS ;; ANSWER SECTION: domain.com. 3600 IN NS ns2.dsredirection.COM. domain.com. 3600 IN NS ns1.dsredirection.COM. ;; ADDITIONAL SECTION: ns1.dsredirection.COM. 35 IN A 208.73.215.55 ns2.dsredirection.COM. 35 IN A 204.13.160.55 ;; Query time: 79 msec ;; SERVER: 192.168.1.10#53(192.168.1.10) ;; WHEN: Mon Aug 16 11:36:50 2010 ;; MSG SIZE rcvd: 116 |
Теперь делаем MX-запрос к NS-серверу, который отвечает за домен domain.com:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ dig @ns1.dsredirection.COM domain.com mx ; <<>> DiG 9.6.1-P2 <<>> @ns1.dsredirection.COM domain.com mx ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22877 ;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;domain.com. IN MX ;; Query time: 51 msec ;; SERVER: 208.73.215.55#53(208.73.215.55) ;; WHEN: Mon Aug 16 11:42:52 2010 ;; MSG SIZE rcvd: 34 |
Результат тот же - запись MX для домена не прописана, значит почту из внешнего мира они получать не могут. Но на самом деле могут. Если не прописана запись MX, то почта должна уйти на ip-адрес указанный в A-записи. А-запись для домена domain.com прописана, но вот порты ни POP3 ни IMAP не открыты. Это можно определить, например, командой nmap (ip-адрес, естественно, выдуман):
1 2 3 4 5 6 7 | $ nmap 111.11.11.11 Starting Nmap 5.00 ( http://nmap.org ) at 2010-08-16 17:38 EEST Interesting ports on 111.11.11.11: Not shown: 999 filtered ports PORT STATE SERVICE 80/tcp open http |
Если вы работаете в операционной системе Windows, то эти же действия можно выполнить с помощью команды nslookup:
1 2 3 4 5 | C:\>nslookup -q=mx domain.com Server: mydns.server.com Address: 192.168.1.10 *** No mail exchange (MX) records available for domain.com |
Уточняем, если нужно, NS-сервера для domain.com:
1 2 3 4 5 6 7 8 9 10 | C:\>nslookup -q=ns domain.com Server: mydns.server.com Address: 192.168.1.10 Non-authoritative answer: domain.com nameserver = ns1.dsredirection.com domain.com nameserver = ns2.dsredirection.com ns1.dsredirection.com internet address = 208.73.215.55 ns2.dsredirection.com internet address = 204.13.160.55 |
И спрашиваем у сервера ns1.dsredirection.com:
1 2 3 4 5 | C:\>nslookup -q=mx domain.com ns1.dsredirection.com Server: ns1.dsredirection.com Address: 208.73.215.55 *** No mail exchange (MX) records available for domain.com |
Результат аналогичен.
А вот, что должно быть для работающего почтового сервера, например ukr.net:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ dig ukr.net mx ; <<>> DiG 9.6.1-P2 <<>> ukr.net mx ;; QUESTION SECTION: ;ukr.net. IN MX ;; ANSWER SECTION: ukr.net. 437 IN MX 10 mxs.ukr.net. ;; ADDITIONAL SECTION: mxs.ukr.net. 469 IN A 195.214.192.100 ;; Query time: 1 msec ;; SERVER: 192.168.1.10#53(192.168.1.10) ;; WHEN: Mon Aug 16 12:11:32 2010 ;; MSG SIZE rcvd: 61 |
Как видите здесь запись MX присутствует:
1 | ukr.net. 437 IN MX 10 mxs.ukr.net. |
Конечно, это частный пример и проблемы с почтой могут быть разные. Например, запись MX может быть прописана, но сам почтовый сервер, может быть силу каких-то причин недоступным. Или как я уже писал, MX-записи нет, почта пытается уйти на адрес указанный в A-записи, но там не поднят почтовый сервер. И т.д. Основной смысл был показать как это можно увидеть с помощью команды dig или nslookup и двух-трех запросов.
Если вдруг, где ошибся или, что-то не так написал, или быть может неправильно я определил, что почтовый сервер не работает - просьба сообщить об этом.
Оставьте свой отзыв