Поделиться через


Использование Telnet для проверки связи по протоколу SMTP

 

Применимо к: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Последнее изменение раздела: 2006-11-14

В этом разделе объясняется, как использовать Telnet для проверки связи по протоколу SMTP (Simple Mail Transfer Protocol) между серверами обмена сообщениями. По умолчанию протокол SMTP осуществляет прослушивает на порту 25. При использовании Telnet на порту 25 можно ввести команды SMTP, используемые для подключения к SMTP-серверу и отправить сообщение так, как будто сеанс Telnet является SMTP-сервером обмена сообщениями. При этом можно видеть успешный или неудачный результат каждого действия в процессе подключения и отправки сообщения.

Следующий список содержит сценарии, в которых Telnet используется для проверки связи по протоколу SMTP с имеющимися в организации Microsoft Exchange Server транспортными серверами:

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

  • Подключение к удаленному серверу обмена сообщениями с пограничного транспортного сервера организации и отправка сообщения.

Предварительная подготовка

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

Подключенные к Интернету SMTP-серверы для обмена сообщениями во многих организациях настроены на проверку IP-адреса источника, соответствующего DNS-имени домена и на воспроизведение по IP-адресу любого узла Интернета, который пытается отправить сообщение на сервер. При подключении к Интернету тестового компьютера и попытке отправить тестовое сообщение на удаленный сервер обмена сообщениями с помощью Telnet на порту 25, сообщение может быть отклонено. Чтобы удовлетворить требованиям к безопасности, предъявляемым удаленным сервером обмена сообщениями, можно подключиться к удаленному серверу обмена сообщениями с пограничного транспортного сервера. Обслуживаемые домены, настроенные на пограничном транспортном сервере, имеют необходимые MX-записи, записи адреса и записи обратного просмотра, которые идентифицируют пограничный транспортный сервер в качестве допустимого и отслеживаемого источника сообщения электронной почты для этих обслуживаемых доменов в Интернете.

Процедуры, приведенные в данном разделе, показывают, как использовать клиент Microsoft Telnet, входящий в состав Microsoft Windows Server 2003 и Windows XP. В предыдущих версиях Windows или клиентах Telnet сторонних производителей может использоваться другой синтаксис. Команды клиента Windows Telnet вводятся без учета регистра. Команды SMTP набраны заглавными буквами для большей ясности.

После подключения к SMTP-серверу назначения в сеансе Telnet нельзя использовать клавишу BACKSPACE. Если при вводе команды SMTP допущена ошибка, следует нажать клавишу ВВОД и повторно ввести команду. Неизвестные команды SMTP или синтаксические ошибки приведут к появлению сообщения об ошибке следующего вида:

500 5.3.3 Unrecognized command

Использование средства командной строки Nslookup для поиска IP-адреса SMTP-сервера

Чтобы подключиться к SMTP-серверу назначения с помощью Telnet на порту 25, необходимо знать полное доменное имя и IP-адрес SMTP-сервера. Самым простым способом получения этих сведений является использование средства командной строки Nslookup для поиска MX-записи домена назначения.

Использование средства Nslookup для поиска IP-адреса SMTP-сервера

  1. В командной строке введите nslookup и нажмите клавишу ВВОД. Эта команда открывает сеанс Nslookup.

  2. Введите set type=mx и нажмите клавишу ВВОД.

  3. Введите set timeout=20 и нажмите клавишу ВВОД. По умолчанию DNS-серверы Windows отводят 15-секундный интервал для выполнения рекурсивного DNS-запроса.

  4. Введите имя домена, для которого требуется найти MX-запись. Например, чтобы найти MX-запись для домена fabrikam.com, введите fabrikam.com. и нажмите клавишу ВВОД.

    noteПримечание.
    Завершающая точка ( . ) означает, что используется полное доменное имя. Использование завершающей точки препятствует непреднамеренному добавлению к имени домена каких-либо DNS-суффиксов по умолчанию, настроенных для сети.

    Выходные данные команды выглядят следующим образом:

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

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

  5. Для завершения сеанса Nslookup введите exit и нажмите клавишу ВВОД.

noteПримечание.
Ограничения брандмауэра и прокси-сервера Интернета, установленные для внутренней сети организации, могут препятствовать использованию средства Nslookup для опроса публичных DNS-серверов в Интернете.
MX-записи не обязательны для внутреннего обмена сообщениями в организации Exchange. Если необходимо узнать полное доменное имя какого-либо транспортного сервера-концентратора или подписанного пограничного транспортного сервера в организации, можно выполнить в командной консоли Exchange следующую команду: Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isEdgeServer -eq $true} | Format-List Fqdn,ServerRole
Дополнительные сведения см. в разделах Get-ExchangeServer и Конвейеризация.

Использование Telnet на порту 25 для проверки связи по протоколу SMTP

Процедура в этом разделе показывает, как использовать Telnet на порту 25 для проверки связи по протоколу SMTP. Эта процедура использует значения, описанные в следующем списке:

  • SMTP-сервер назначения   mail1.fabrikam.com

  • Исходный домен   contoso.com

  • Адрес электронной почты отправителя   chris@contoso.com

  • Адрес электронной почты получателя   kate@fabrikam.com

  • Тема сообщения   Test from Contoso

  • Текст сообщения   This is a test message

noteПримечание.
Всегда следует использовать работающий адрес электронной почты отправителя, чтобы все отчеты о недоставке, созданные SMTP-сервером назначения, доставлялись отправителю сообщения.

Использование Telnet на порту 25 для проверки связи по протоколу SMTP

  1. В командной строке введите telnet и нажмите клавишу ВВОД. Эта команда открывает сеанс Telnet.

  2. Введите set localecho и нажмите клавишу ВВОД. Эта необязательная команда позволяет видеть вводимые знаки. Этот параметр может быть необходим для некоторых SMTP-серверов.

  3. Введите set logfile <имя_файла>. Это необязательная команда включает ведение журнала сеанса Telnet в указанный файл журнала. Если указать только имя файла, местоположением файла журнала будет текущий рабочий каталог. При указании пути и имени файла путь должен быть локальным для компьютера. И путь, и имя файла необходимо вводить в формате Microsoft DOS 8.3. Указанный путь должен уже существовать. Если указать файл журнала, который не существует, он будет создан.

  4. Введите open mail1.fabrikam.com 25 и нажмите клавишу ВВОД.

  5. Введите EHLO contoso.com и нажмите клавишу ВВОД.

  6. Введите MAIL FROM:chris@contoso.com и нажмите клавишу ВВОД.

  7. Введите RCPT TO:kate@fabrikam.com NOTIFY=success,failure и нажмите клавишу ВВОД. Необязательная команда NOTIFY определяет конкретные уведомления о доставке, которые SMTP-сервер назначения должен предоставить отправителю. Уведомления о доставке определены в RFC 1891. В данном случае запрашивается уведомление об успешной доставке или невозможности доставки сообщения.

  8. Введите DATA и нажмите клавишу ВВОД. Появится отклик, подобный приведенному ниже:

    354 Start mail input; end with <CLRF>.<CLRF>
    
  9. Введите Subject: Test from Contoso и нажмите клавишу ВВОД.

  10. Нажмите клавишу ВВОД. RFC 2822 требует, чтобы между полем заголовка Subject: и текстом сообщения была пустая строка.

  11. Введите This is a test message и нажмите клавишу ВВОД.

  12. Нажмите клавишу ВВОД, введите точку ( . ) и нажмите клавишу ВВОД. Появится отклик, подобный приведенному ниже:

    250 2.6.0 <GUID> Queued mail for delivery
    
  13. Чтобы отключиться от SMTP-сервера назначения, введите QUIT и нажмите клавишу ВВОД. Появится отклик, подобный приведенному ниже:

    221 2.0.0 Service closing transmission channel
    
  14. Чтобы закрыть сеанс Telnet, введите quit и нажмите клавишу ВВОД.

Интерпретация результатов сеанса Telnet с SMTP-сервером

В этом разделе приведены подробные сведения о возможных откликах на команды, введенные в предыдущем примере.

noteПримечание.
Трехзначные коды отклика SMTP, определенные в RFC 2821, одинаковы для всех SMTP-серверов обмена сообщениями. Текстовые описания могут слегка отличаться для некоторых SMTP-серверов обмена сообщениями. В этом примере на компьютере назначения установлен сервер Exchange Server 2007.

Open mail1.fabrikam.com 25

Отклик об успешном выполнении   220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Отклик о сбое   Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Возможные причины сбоя

  • SMTP-служба назначения недоступна.

  • На брандмауэре назначения установлены ограничения.

  • На брандмауэре источника установлены ограничения.

  • Указано неверное полное доменное имя или IP-адрес для SMTP-сервера назначения.

  • Указан неверный номер порта.

EHLO contoso.com

Отклик об успешном выполнении   250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Отклик о сбое   501 5.5.4 Invalid domain name

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

noteПримечание.
EHLO — это команда протокола ESMTP (Extended Simple Message Transfer Protocol), определенная в RFC 2821. ESMTP-серверы могут объявлять о своих возможностях в процессе начального подключения. Эти возможности включают максимально допустимый размер сообщения и поддерживаемые методы проверки подлинности. HELO — это более старая команда SMTP, определенная в RFC 821. Большинство SMTP-серверов обмена сообщениями поддерживают ESMTP и EHLO.

MAIL FROM:chris@contoso.com

Отклик об успешном выполнении   250 2.1.0 Sender OK

Отклик о сбое   550 5.1.7 Invalid address

Возможные причины сбоя   Синтаксическая ошибка в адресе электронной почты отправителя.

Отклик о сбое   530 5.7.1 Client was not authenticated

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

RCPT TO:kate@fabrikam.com NOTIFY=success,failure

Отклик об успешном выполнении   250 2.1.5 Recipient OK

Отклик о сбое   550 5.1.1 User unknown

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

Дополнительные сведения

Дополнительные сведения см. в следующих разделах: