Blog.mail-server обратитесь к примечаниям интернет-специалиста

Blog.mail-server обратитесь к примечаниям интернет-специалиста Хостинг

Диагностика почтовых протоколов

Время на прочтение

Эта статья о методах диагностики почтовых протоколов. Она предназначена для начинающих администраторов, желающих больше узнать об инструментах для быстрого тестирования авторизации/отправки/приема почтовых сообщений как сервером, так и клиентом. Но также может служить хорошей памяткой соответствующих команд и для более опытных администраторов.

Материал разбит следующим образом:

1. Введение
2. Примеры сессий
3. Проверка авторизации на сервере (LOGIN, PLAIN, CRAM-MD5), Base64
4. Проверка шифрования SSL/TLS
5. Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS
6. Ссылки на материалы

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Введение

В сети достаточно материалов по отдельным пунктам, но все разбросано по разным местам и, когда возникает необходимость выполнить ту или иную операцию, приходится по разным ресурсам вспоминать нюансы авторизации, способы быстрой кодировки в base64, ключи к openssl и tshark. Здесь все собрано вместе, а также добавлена информация о дешифровке SSL/TLS трафика.

Обозначения

$ — приглашение в обычном шелле, указанная после него команда выполняется от обычного пользователя

# — приглашение в рутовом шелле, указанная после него команда выполняется с правами администратора

## — строка с комментарием

Запрос клиента в почтовых сессиях выделен жирным шрифтом.

Почтовые порты

Основные порты, использующиеся в работе почтовых серверов по RFC (документы, регламентирующие работу сети интернет и ее основных компонентов):

SMTP
  • 25/tcp SMTP (стандартный порт)
  • 465/tcp SMTPS (устаревший)
  • 587/tcp submission (порт для обслуживания клиентов)
POP3
  • 110/tcp POP3 (стандартный порт)
  • 995/tcp POP3S (порт с предварительной установкой SSL/TLS соединения)
IMAP
  • 143/tcp IMAP (стандартный порт)
  • 993/tcp IMAPS (порт с предварительной установкой SSL/TLS соединения)

Здесь перечислены только основные, помимо них разные реализации серверов могут использовать другие порты для своих служебных целей, для пользовательского и административного веб-интерфейса, общения узлов кластера и т.д.

Используемые и рекомендуемые утилиты

В статье используются telnet, openssl, tshark. Для наглядности взаимодействия сервера и клиента, использования команд протокола. На регулярной основе и для автоматизации каких-то процессов можно использовать утилиты, которые скрывают от нас все эти детали, но которые проще включаются в скрипты. Из таких утилит могу порекомендовать скрипт на perl smtp-cli (http://www.logix.cz/michal/devel/smtp-cli/), обладающий широкой функциональностью, в том числе и возможностью SMTP авторизации. Также рекомендую утилиту imtest из состава cyrus-clients, которой можно протестировать IMAP протокол. smtp-sink, утилиту из состава postfix, которая эмулирует почтовый сервер. С ее помощью можно отлаживать работу почтового клиента в том случае, если нет ни доступа к существующим почтовым серверам, ни возможности включения в настройках клиента подробного журналирования.

При помощи nmap можно быстро проверить, доступны ли порты снаружи, то есть, слушаются ли они программами и не закрыты ли при этом файерволом:

По этому выводу видно, что на сервере доступны SMTP/IMAP порты, но недоступны порты для
POP3 протокола.

Через netstat можно посмотреть не только прослушиваемые и используемые порты, как часто предполагают, но и процессы, связанные с этими портами. Вот вывод netstat для этого же почтового сервера:

# netstat -lnpvut (и -anpvut, если необходимо посмотреть текущие соединения по портам)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 603/master
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 430/unbound
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 10042/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 603/master
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN 603/master
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 477/dovecot
tcp 0 0 127.0.0.1:1953 0.0.0.0:* LISTEN 430/unbound
tcp 0 0 127.0.0.1:1026 0.0.0.0:* LISTEN 603/master
tcp 0 0 127.0.0.1:2025 0.0.0.0:* LISTEN 603/master
tcp 0 0 :::22 :::* LISTEN 10042/sshd
udp 0 0 127.0.0.1:53 0.0.0.0:* 430/unbound

В этом примере в качестве SMTP сервера используется postfix и dovecot в качестве IMAP. POP3 в списке отсутствует, так как в настройках dovecot этот протокол отключен, как неиспользуемый.

В современных дистрибутивах пакет net-tools уже часто не ставится, считается устаревшим. В качестве замены испольуется утилита ss из состава iproute. Это более узко заточенная и в свой области, вероятно, более функциональная утилита с возможностью настройки фильтров как в tcpdump/tshark. Но мне, например, не нравится, как у нее отформатирован вывод информации. Чтобы чуть это исправить, можно использовать sed:

*) для удобства использования можно поместить следующую bash функцию в ~/.bashrc

Примеры сессий

Здесь приведены примеры сессий по SMTP/IMAP/POP3 протоколам. Для соединения используется клиент телнет, который либо в системе установлен по-умолчанию, либо устанавливается из репозиториев:

Debian/Ubuntu

# apt-cache search telnet
# apt-get install telnet

RHEL/CentOS/Fedora

# yum search telnet
# yum install telnet

Вводимые команды в тексте выделены жирным шрифтом.

250 2.1.0 Ok

250 2.1.5 Ok

250 2.0.0 Ok: queued as 1CF5FC0AAE
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

001 OK completed

* CAPABILITY IMAP4 IMAP4REV1 ACL NAMESPACE UIDPLUS IDLE LITERAL+ QUOTA ID MULTIAPPEND LISTEXT CHILDREN BINARY LOGIN-REFERRALS STARTTLS AUTH=LOGIN AUTH=PLAIN AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=MSN
002 OK completed

003 SELECT Inbox

004 FETCH 7214 body

* BYE IMAP closing connection
005 OK completed
Connection closed by foreign host.

+OK please send the PASS

+OK 7214 messages (174404489 bytes)

+OK marked deleted

+OK POP3 Server connection closed
Connection closed by foreign host.

Проверка авторизации на сервере

Существующие способы авторизации: LOGIN, PLAIN, CRAM-MD5, DIGEST-MD5, GSSAPI, NTLM/MSN, EXTERNAL. Перечень их еще шире, мы же рассмотрим только наиболее распространенные, а именно LOGIN, PLAIN и CRAM-MD5.

В первую очередь необходимо узнать список методов, поддерживаемых сервером. Для каждого из почтовых протоколов есть команды, позволяющие получить эти данные наряду с другой информацией о доступных расширениях протокола. Обратите внимание, что в зависимости от настроек почтового сервера, LOGIN и PLAIN, передающие данные в открытом виде, могут быть недоступны без предварительной инициализации шифрования через SSL/TLS

Итак, вывод доступных способов авторизации:

Протокол SMTP

Какие-то почтовые сервера могут выводить эту информацию в «приветствии сервера», например dovecot.

* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS XEXEC QUOTA STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
001 OK Capability completed.

* BYE Logging out
002 OK Logout completed.
Connection closed by foreign host.

Протокол POP3

+OK methods supported:
LOGIN
PLAIN
.

+OK POP3 server at signing off
Connection closed by foreign host.

Примеры авторизации и используемый формат

250-mail.server.net Hello client.server.net
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 GSSAPI
250-ENHANCEDSTATUSCODES
250 STARTTLS

235 2.7.0 Authentication successful

PLAIN

AUTH PLAIN dGVzdAB0ZXN0AHRlc3RwYXNz

CRAM-MD5

В отличии от предыдущих способов авторизации CRAM-MD5 пароль не передается в открытом виде, вместо этого используется сравнение хэшей. Ручная проверка этого способа авторизации может быть проблемой, так как нужно будет выполнить несколько преобразований, а время на введение команд ограничено. Для упрощения процесса ниже приведен простой perl скрипт, который принимает на вход имя пользователя, пароль и «кодовое слово» (выдаваемое сервером), и конвертирует их в строку в base64 формате.

Читайте также:  Демистифицируем VMware vCenter: подробное руководство

Для скрипта понадобится дополнительный модуль perl «Digest-HMAC». В Debian/Ubuntu его можно найти и установить следующим образом:

В тех дистрибутивах, в чьих репозиториях нет этого пакета (что маловероятно), можно использовать установку модуля из CPAN.

Скрипт и пример сессии с его использованием:

## кодовое слово, выдаваемое сервером:
PDMzMjE2NDkzMTA1OTExNDQuMTQxNDc5NTExOUBtYWlsLnNlcnZlci5uZXQ+

221 2.0.0 Bye

# ./md5cram.pl test testpass PDMzMjE2NDkzMTA1OTExNDQuMTQxNDc5NTExOUBtYWlsLnNlcnZlci5uZXQ+
dGVzdCAxNTU0YTQwNzA1NTgxZjUwZmI1MmNjZDhlZDhjM2EyYg==

01 AUTHENTICATE CRAM-MD5

* BYE Logging out
02 OK Logout completed.
Connection closed by foreign host.

# ./md5cram.pl test testpass PDgxOTAyMjA2NTYwNzcyMzEuMTQxNDc5NzA3MkBtYWlsLnNlcnZlci5uZXQ+
dGVzdCA1YTZlNjYwMDlmZGJlZWNjYWRlNDY5M2FlMjU5YTA2ZQ==

Cпособы конвертации текста в и из base64

Авторизация предполагает обмен строками, закодированными в base64. Для Linux cуществует много утилит для конвертации в base64 и обратно. Мы укажем несколько, включая способ их запуска. Для Windows можно использовать кроссплатформенные perl, python, php, по ним также будут привидены примеры.

Утилита (пакет)

Чтобы раскодировать, потребуется добавить первую и последнюю строку. Это можно сделать, например, следующими способами;

$ uudecode<<EOF
begin-base64 644 —
dGVzdAB0ZXN0AHRlc3RwYXNz
====
EOF

Mmencode (xemacs21-bin)

Модуль MMIME::Base64 стандартно идет в комплекте.

$ perl -MMIME::Base64 -e ‘print encode_base64(«testtesttestpass»)’
dGVzdAB0ZXN0AHRlc3RwYXNz
$ perl -MMIME::Base64 -e ‘print decode_base64(«dGVzdAB0ZXN0AHRlc3RwYXNz»)’
testtesttestpass

Openssl (openssl)

Для шифрования трафика в почтовых протоколах между клиентом и сервером используется SSL/TLS в двух вариантах. Использование специальных портов, при соединении с которым сначала осуществляется установка SSL/TLS, после чего уже поверх него идет обычный почтовый трафик. Этот метод, кстати, признан устаревшим (deprecated), относительно SMTP точно. Второй вариант, более предпочтительный — соединение с обычным портом для сервиса и переход сессии в зашифрованный вид с использованием расширения STARTTLS.

Для проверки работы почтового сервера поверх SSL/TLS можно использовать утилиту openssl, дальше действуя, как при обычной сессии через telnet.

$ openssl s_client -starttls smtp -crlf -connect mail.truevds.ru:25
$ openssl s_client -starttls smtp -crlf -connect mail.truevds.ru:587
$ openssl s_client -crlf -connect mail.truevds.ru:465

$ openssl s_client -connect mail.truevds.ru:995
$ openssl s_client -starttls pop3 -crlf -connect mail.truevds.ru:110

$ openssl s_client -crlf -connect mail.truevds.ru:993
$ openssl s_client -starttls imap -crlf -connect mail.truevds.ru:143

Можно явным образом указать, что использовать для шифрования, ssl3 или tls1, а также конкретные алгоритмы:

$ openssl s_client -ssl3 -starttls smtp -crlf -connect mail.truevds.ru:25

Посмотреть перечень поддерживаемых протоколов в вашей версии openssl:

$ openssl ciphers -ssl3
$ openssl ciphers -tls1

Ниже, в главе про tshark, эта возможность будет использована в практических целях.

Анализ почтового трафика при помощи tshark. Расшифровка SSL/TLS

При необходимости более сложной диагностики в том случае, когда журналы не дают достаточно информации о проблемах в работе сервера или клиента, можно использовать tcpdump/wireshark для анализа непосредственно самой сессии между клиентом и сервером. Как в реальном времени, так и сохранив дамп сессии для последующего анализа. Для быстрого анализа удобно использовать консольный вариант wireshark — tshark. Для его работы потребуются права root.

Tshark предоставляет информацию в понятном виде и в использовании довольно прост.

# tshark -i eth0 -f «port 25» -R smtp

# tshark -i eth0 -f «port 143» -R imap

# tshark -i eth0 -f «port 110» -R pop

# tcpdump -s0 -nn -i eth0 -w smtps.pcap port 465 and host HOSTIP
# dumpcap -s0 -i eth0 -w smtp.pcap -f ‘port 25 and host HOSTIP’

# tshark -n -r smtp.pcap -R smtp

Во многих случаях в почтовых протоколах активно используется шифрование и таким способом сессию уже не посмотреть. Тем не менее, этот вопрос в целом также решаем. tshark может дешифровать SSL/TLS трафик «со стороны сервера» при наличии доступа к приватному ключу сервера (для клиента есть вариант с использованием Master-Key, подробнее wiki.wireshark.org/SSL). К счастью или к сожалению, wireshark с приватным ключем может дешифровать не все использвуемые алгоритмы. Например DHE-* EXP-*,EDH-* не работают. Возможно, какие-то из этих алгоритмов добавлены в более поздних версиях программы.

В процессе тестирования использовалась утилита openssl с явным указанием при соединении с конкретных алгоритмов. Проверенные варианты, с которыми дешифровка трафика прошла успешно:

  • ssl3: RC4-SHA, RC4-MD5, DES-CBC-SHA, AES128-SHA
  • tls1: RC4-MD5, AES256-SHA, DES-CBC-SHA, DES-CBC3-SHA

# openssl ciphers -ssl3
# openssl ciphers -tls1

Для анализа реальной сессии можно отключить в конфигурации почтового сервера (только на время тестирования!) всех алгоритмов, кроме заведомо рабочих.

Tshark запускается на сервере, там, где есть ключ, а клиент openssl на локальном компьютере. Но, это, конечно, необязательно, вполне можно tshark запускать на клиенте в другой консоли, просто это потребует копирования приватного ключа на локальный компьютер. А openssl можно запускать в screen в соседнем с tshark окне.

Здесь 94.127.66.53 — ip адрес сервера, с которым соединяется клиент, /etc/pki/tls/private/server.key — путь до приватного ключа сервера. Приватный ключ, как правило, размещается в /etc/pki или /etc/ssl, в зависимости от сервера. Эту информацию можно посмотреть в настройках самого почтового сервера.

Пример для postfix:

$ grep key_file /etc/postfix/main.cf
smtpd_tls_key_file = /etc/pki/tls/private/server.key
smtp_tls_key_file = /etc/pki/tls/private/server.key

Для портов, где используется starttls вместо порта в официальной документации рекомендуется использовать start_tls. Например, ssl.keys_list:94.127.66.53,start_tls,smtp,/etc/pki/tls/private/server.key вместо ssl.keys_list:94.127.66.53,25,smtp,/etc/pki/tls/private/server.key. Но у меня этот вариант не сработал, показывался трафик только до инициализации шифрования.

Для отладки процесса SSL/TLS дешифровки используется опция -o «ssl.debug_file: /tmp/debug.log»

Пример вывода дешифрованного трафика:

Ссылки на материалы

Удачи в решении почтовых проблем!

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Test SMTP authentication, send an email, and troubleshoot Email issues in real-time with an SMTP tester.

SMTP Test Tool — Free SMTP Checker

Use the SMTP checker to check your SMTP server’s health status. The tool connects to your SMTP server & then sends an email also.

What is an SMTP?

Before performing the SMTP test with an SMTP tester, you must get to know what is SMTP and how does it work?

SMTP stands for Simple Mail Transfer Protocol. The protocol consists of commands that authenticate and direct email transfer. Commonly, SMTP is linked with IMAP or POP3. However, SMTP is the protocol for sending emails, whereas IMAP and POP3 are the protocols for retrieving or receiving emails. So in other words, SMTP is a protocol for sending emails to people.

For example, when you send an email using an email client:

  • The email travels from your device to the email server, also called the SMTP server (that server is already configured in your email client).
  • Your SMTP server then sends the message to your recipient’s email server using SMTP protocol.
  • Then the email stays on the recipient’s server until the recipient logs in to their email account and downloads the emails using IMAP or POP3.

Here we assume the recipient’s email address is correctly spelled and still exists. But if it is misspelled and does not exist, you will receive a mail delivery failure message in your inbox.

Why use the SMTP server test tool?

So what is the solution?

You must address the root problems related to your outbound emails. And SMTP test tool is the solution to that problem.

How the SMTP tester helps in checking your SMTP configuration by sending test mail from that SMTP host?

  • Enter the host or IP address of your SMTP server.
  • Enter the port. The default port is 25. However, SMTP servers use many custom ports.
  • Enter the sender’s email address.
  • Enter the receiver’s email address. The SMTP tester will send the test mail to that address.
  • Check for «use Secured Connection» if the SMTP server needs a secure connection (SSL, TSL).
  • Check for «use authentication» if the SMTP server needs this.
  • Hit the «Test SMTP» button to perform the SMTP test.
Читайте также:  Раскройте возможности прокси-сервера с FreeBSD: защитите просмотр веб-страниц!

Enter Domain to Check Health:

Enter the domain to generate report. Note: It may take up to 5 minutes.

About Complete DNS Health Check Tool

Domain name system is the initial setup which a domain requires to operate. If DNS records lack healthy setup and are set up without reviewing proper documentation, then it may lead towards warnings and errors in DNS, and sometimes it may break the chain between your visitors and server.

Why DNS Health Checker is so useful?

To use domain DNS health checker, enter your domain URL and hit enter to submit your domain to our system for health check. It takes an average of 1 to 3 minutes because it has to extensively send multiple external requests, which takes time to get a response.

MX Lookup — MX Record Check

Instantly perform the MX record lookup of any domain with our MX record checker. MX records are added to the domain’s DNS to set up the internal and external email servers for that specific domain, especially if you want to use the custom email address for that particular domain. MX record checks instantly perform the DNS MX lookup and find the MX record for a domain.

Checking an MX Record

You can check the MX records of any domain instantly. Just enter the domain name in the MX lookup online.

What is a record, and what is an MX record?

Simply, the record means any data in a proper and structured form. In the programming language, the DNS records are the «mapping files.» The request is sent to the DNS database whenever you enter any website in your browser bar. The database looks up its DNS records, gets its IP address, and sends it to the requesting client.

MX records are Mail Exchange records set in the DNS for sending the email to your email address. The MX records tell which mail server will receive the incoming emails for that specific domain and where your domain’s emails should be routed per the Simple Mail Transfer Protocol (SMTP).

The email servers check the MX record of your domain before sending the email. If no MX record is found, the email will fail to send. Moreover, you cannot receive the email if your MX records point to the wrong location. These records are necessary to set up, especially when using a custom email address for your domain.

Example of an MX record

  • 10 mail1.example.com
  • 20 mail2.example.com

Here the number represents the priority hierarchy; a lower number will be preferred first. The server will first try mail1 to send the email. If it fails to send an email, then it will move toward mail2 for sending an email. Therefore, you must set the MX records of your domain appropriately. If you put them incorrectly, you will not receive the email.

What is the process of querying an MX record?

For example, you have a domain example.com and want to manage its emails on mail.example.com. You need A record for mail.example.com and its corresponding MX record.

example.com A xxx.xxx.xxx.xxx

mail.example.com A xxx.xxx.xxx.xxx

example.com MX mail.example.com

mail.example.com CNAME example.com

That is invalid and will cause the problem.

FAQs

Usually, the company controls your MX records, providing you with the nameservers facility. In that case, your DNS records can be managed in their control panel.

What is a backup MX record?

As discussed earlier, in MX records, the number represents the priority. When sending the email, the email servers check the MX records of that email domain. If the record is present, the servers send it to the mail server with a lower value because the lower value is preferred first. If it fails to send an email to the first mailing server, it will go to the second one. The backup MX record is just another MX record of the mail server with a higher value.

How long does it take a change in MX records to propagate?

It depends upon your MX records’ TTL (Time to Live) value. However, if you talk about the DNS propagation checks globally, it will take 24 to 48 hours to propagate the MX records globally. Also, check MX records through multiple DNS servers worldwide with the WhatsMyDNS tool.

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Проверка правильности настройки почтового сервера — задача непростая, особенно в части его взаимодействия с внешним миром. Если вы не являетесь специалистом в области почтовых серверов, то скорее всего у вас возникнут затруднения. Но не стоит впадать в уныние, сегодня мы расскажем об онлайн-сервисах которые сделают большую часть работы за вас. Вам останется только изучить рекомендации и исправить ошибки.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

MX Toolbox

Одним из лучших сервисов по диагностике почты является MX Toolbox. Достаточно ввести имя вашего домена, все остальные проверки сервис выполнит самостоятельно. Первым делом будут определены MX-записи:

После чего можно будет выполнить поиск проблем:

В результате вы получите общий список ошибок и предупреждений, более подробно с результатами проверки можно ознакомиться выбрав соответствующий раздел. Так например настройка DNS не содержит ошибок, а настройка почтового сервера лишь два предупреждения:

Blog.mail-server обратитесь к примечаниям интернет-специалиста

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

Для этих целей полезно воспользоваться еще одним инструментом — анализатором заголовков (Email Header Analyzer), скопировав заголовок письма вы сможете оценить задержки на всех этапах его прохождения от отправителя к получателю.

В нашем случае видно как веб-интерфейс Zimbra отдал почту непосредственно серверу (1), который передал ее на localhost для антивирусной и антиспам проверки (2), пройдя проверку письмо вернулось обратно серверу, задержавшись на 1 секунду (3) и было отдано серверу-получателю. Возникновение значительных задержек на одном из этапов — повод обратить внимание на работу этого компонента.

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

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Microsoft Remote Connectivity Analyzer

Второй используемый нами инструмент — Microsoft Remote Connectivity Analyzer, несмотря на то, что в первую очередь предназначен для диагностики продуктов Microsoft, может оказаться полезен и для проверки любых других почтовых серверов.

Нас должен заинтересовать раздел Тесты для электронной почты в Интернете, который не только выполнит проверку настроек, но и попробует отправить тестовое письмо, сопроводив этот процесс подробным отчетом:

Читайте также:  Полное удаление MySQL 5.7 [закрыто]

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

Проверка исходящего потока почты позволит обнаружить возможные проблемы проведя эмуляцию реальной отправки с вашего сервера:

Мы настоятельно рекомендуем использовать этот инструмент при возникновении проблем с входящим / исходящим потоком почты, так как он позволяет быстро и наглядно выявить проблему. Также сервис позволяет выполнить аналогичные проверки для почтовых клиентов, подключающихся по протоколу POP3 или IMAP.

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

В частности определяются и указываются имена участвующих в обработке почты служб, что позволяет гораздо быстрее определить узел вносящий наибольшие задержки. Действительно, MX Toolboox просто уведомил нас, что вторым шагом отдал почту на localhost и, только зная архитектуру Zimbra, мы можем сказать кому именно была отдана почта. Сервис от Microsoft гораздо подробнее, он сообщает что почта отдана сервису amavisd-new на порт 10026, это может сэкономить немало времени, особенно если почта проходит обработку на нескольких узлах.

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

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Очень часто перед администратором встает необходимость проверить работу почтового сервера по протоколу SMTP, как своего, так и чужого. Обычно это связано с проблемами отправки или получения почты и следует не только убедиться в доступности сервера, но и понять, что происходит с письмом дальше. Несмотря на то, что существуют различные сервисы для диагностики почтовых систем, лучше всего проверить работу сервера подключившись к нему через Telnet и отправив письмо при помощи SMTP-команд, получив необходимую информацию, что называется «из первых рук».

Несмотря на кажущуюся сложность этого метода, он достаточно прост и необходимость ручного ввода SMTP-команд не должна вас пугать. Зато вы сможете получить всю необходимую для диагностики информацию прямо здесь и сейчас, не оглядываясь на возможности и ограничения сторонних сервисов.

Прежде всего сразу следует выяснить какой узел в указанном домене отвечает за прием почты, это следует сделать даже если вы знаете точный адрес этого сервера, так как позволит выявить возможные ошибки при настройке DNS. Для этого мы будем использовать утилиту nslookup, в Windows она входит в штатный комплект поставки, а в Linux вам возможно потребуется установить пакет dnsutils.

Для получения записей MX-хостов узла (т.е. серверов, принимающих почту) выполним:

nslookup -type=mx host31.ru

В качестве ответа вы должны получить имя одного или нескольких серверов.

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Прежде всего запустим самого клиента:

в ответ мы увидим строку приглашения, куда введем строку соединения с сервером, обычно используется порт 25, но могут также быть 465 или 587:

OPEN mx.yandex.net 25

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

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Обратите внимание, что оно отличается от адреса, к которому мы подключались. Это связано с тем, что почту могут обслуживать несколько серверов и при обращении к домену mx.yandex.net каждый раз будет выдаваться разный адрес, для распределения нагрузки между серверами. В этом несложно убедиться, выполнив еще раз команду nslookup, без аргументов она сообщит нам А-записи, которые соответствуют адресам серверов.

После того как мы подключились к серверу нужно отправить приветствие, которое будет содержать полное доменное имя клиента (либо адрес, если клиент не имеет доменного имени):

На приветствие сервер отвечает кодом 250 OK и сообщает поддерживаемые SMTP-расширения, это означает что сервер готов к получению почты.

Для начала почтовой сессии введите команду:

Теперь укажем получателя:

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

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Для этого введем команду:

В ответ мы получим сообщение с кодом 354, которое разрешит нам ввод письма, которое следует закончить точкой с новой строки.

В первую очередь следует указать тему:

Затем вводим пустую строку, по правилам тему письма следует отделять от тела пустой строкой, и далее пишем текст сообщения. Количество символов и строк не ограничено, главное — не превысить допустимый размер письма. Закончив, ставим точку в новой строке и нажимаем Enter.

TEST TEST TEST.

После чего сервер выполнит попытку отправки нашего письма и сообщит нам результат.

В нашем случае письмо принято к доставке, о чем говорит код 250 2.0.0 Ok, также сервер сообщает нам присвоенный письму идентификатор. Его можно использовать при дальнейшем поиске сообщения в недрах самой почтовой системы. Обратите внимание, что этот код не говорит о том, что письмо успешно доставлено получателю, в дальнейшем оно может попасть под фильтры и оказаться в спаме, но это уже находится за рамками работы протокола SMTP, свою работу в данном случае он выполнил.

Blog.mail-server обратитесь к примечаниям интернет-специалиста

Еще одна часто встречающаяся ситуация — это технология серых списков. Ее суть заключается в том, что если отправитель первый раз присылает почту и в его отношении есть некоторые сомнения, то данные о нем вносятся в серый список, а ему выдается сообщение о временной недоступности сервера. Смысл такого поведения заключается в том, что нормальный сервер повторит отправку, в то время как спамерские скрипты этого обычно не делают. Кроме того, согласно требованиям протокола SMTP, повторную отправку следует производить не ранее, чем через полчаса.

Для проверки мы отправили сообщение с подделанным отправителем и сразу же получили ошибку 451 4.7.1 Sorry, the service is currently unavailable. Please come back later.

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

Для окончания сессии с сервером введите команду

Как видим, работа с почтовым сервером по протоколу SMTP через Telnet не сложна, но в тоже время предоставляет широкие возможности по диагностике сервера и позволяет быстро найти и выявить причины возможных проблем с доставкой почты.

  • Tools
  • Email Tools
  • SMTP Test

Use our SMTP test tool to send an email in real-time by providing host, port, and security settings with credentials.
We’ll use SMTP to send an email to your mailbox so that you can verify your SMTP server can receive an email with the credentials used. We only use your credentials for testing purposes and do not store them anywhere. If you have trouble with your SMTP Server, use this tool to troubleshoot a problem. It is completely free to use.

What is SMTP?

  • SMTP Server: This is the hostname or IP address of the mail server.
  • Port: The port specifies the TCP port used to send email. The default SMTP port is 25, which is non-encrypted port. For secure connections, ports 465 or 587 is used to send an encrypted emails.
  • Secure Connection: Secure connection can be established via SSL, TLS or STARTTLS. Use the setting provided by your mail provider.

Test your connection to Sendgrid, Mailgun, Amazon SES, or any SMTP server.
See the exact SMTP «conversation» to help you troubleshoot email issues. FAQ.

Need a different SMTP service? Here’s my technical review of popular SMTP services.

Send your first campaign in a matter of minutes

No credit card required

Оцените статью
Хостинги