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

 

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

Последнее изменение раздела: 2016-11-28

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

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

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

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

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

Предварительные условия

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

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

  • Установка и/или включение клиента Telnet   Может потребоваться выполнение одной или нескольких из следующих задач перед использованием протокола Telnet для проверки связи SMTP между серверами обмена сообщениями:

    • Установите клиент Telnet, если это не было сделано ранее. Дополнительные сведения об установке клиента Telnet в ОС Windows Vista или Windows Server 2008 см. в разделе Установка клиента Telnet.

    • Включите клиент Telnet на сервере Windows Server 2008. Дополнительные сведения см. ниже в этом разделе.

  • Поиск имени FQDN или IP-адреса сервера SMTP. Если имя FQDN или IP-адрес неизвестны, для поиска имени FQDN или IP-адреса сервера SMTP можно использовать средство Nslookup. См. инструкции ниже в этом разделе.

Включение клиента Telnet на сервере Windows Server 2008

Для выполнения описанных действий необходимо, как минимум, членство в локальной группе администраторов Windows Server 2008 или аналогичной группе.

В системе Windows Server 2008 клиент Telnet по умолчанию отключен. Чтобы его включить, выполните следующие действия:

  1. Откройте Диспетчер сервера.

  2. Щелкните Действия, затем выберите Добавить компоненты.

  3. Выберите Клиент Telnet, затем щелкните Далее.

  4. Щелкните Установить, затем щелкните Закрыть для завершения установки клиента Telnet.

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

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

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

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

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

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

    ПримечаниеПримечание.
    Конечная точка ( . ) означает, что используется имя FQDN. Использование завершающей точки препятствует непреднамеренному добавлению к имени домена каких-либо 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 и нажмите клавишу ВВОД.

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

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

В качестве примера в этой процедуре использованы значения, описанные в следующем списке:

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

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

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

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

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

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

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

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

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

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

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

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

    ПримечаниеПримечание.
    После подключения к SMTP-серверу назначения в сеансе Telnet нельзя использовать клавишу BACKSPACE. Если при вводе команды SMTP допущена ошибка, следует нажать клавишу ВВОД и повторно ввести команду. Неизвестные команды SMTP или синтаксические ошибки приведут к появлению сообщения об ошибке следующего вида:
    500 5.3.3 Unrecognized command
    
  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

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

  • Open mail1.fabrikam.com 25

  • EHLO contoso.com

  • MAIL FROM:chris@contoso.com

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

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

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-сервере назначения установлены ограничения на подключение.

ПримечаниеПримечание.
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

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

 © Корпорация Майкрософт (Microsoft Corporation), 2010. Все права защищены.