Email — Связь с почтой посредством smtp


Содержание

Форма обратной связи SMTP на PHPMailer с прикреплением файлов — почему не приходят вложения на почту?

Всем добрый день!
Имеется форма обратной связи c отправкой по SMTP при помощи библиотеки PHPMailer.
Открывается в модальном окне и работает без перезагрузки страницы.

Форма HTML имеет вид:

Обработчик php — letter.php :

Затем прикрепляю библиотеку jquery-3.2.1.min, и приписываю скрипт Аякса для отправки формы без перезагрузки страницы:

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

Отправка сообщения на почту посредством SMTP

03.09.2015, 22:31

SMTP С++ отправка сообщения на почту
Ребят, такая задача. Нужно отправить сообщение на почту. программа должна это делать в фотоном.

SMTP Отправка файла на почту
Здравствуйте! Вот пытаюсь дописать код для отправки файлов на почту, код взял здесь на форуме. Всё.

SMTP протокол. отправка сообщения в битой кодировке
Добрый день, безуспешно борюсь со следующей проблемой: 1)Формирую Заголовок письма следующим.

Отправка email-сообщения на smtp сервер с ssl
Помогите написать программу на c++, отправляющую email сообщение на smtp сервер с ssl.

SMTP отправка писем
Задумался, а как сделать отправку на чистом C++. Перерыл всё. И ничего, нет, они есть, но на.

Отправка писем через SMTP в PHPMailer

В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают в спам или совсем не доходят до адресатов. Альтернатива – это отправка e-mail через SMTP с реального почтового ящика.

Яндекс Почта

Mail.ru

Gmail

Если возникает ошибка при отправки почты, то нужно отключить двухфакторную авторизацию и разблокировать «ненадежные приложения» в настройках конфиденциальности аккаунта https://myaccount.google.com/security?pli=1

Рамблер

iCloud

Мастерхост

Timeweb

Лимит – 2000 писем в день, но не более 5 в секунду.

Хостинг Центр (hc.ru)

Доступ к сторонним почтовым серверам по SMTP-портам (25, 465, 587) ограничен, разрешена отправка не более 300 сообщений в сутки.

REG.RU

Лимит – 3000 писем в день.

Имя сервера можно узнать в разделе «Информация о включенных сервисах и паролях доступа»:

ДЖИНО

В разделе «Услуги» нужно включить опцию «SMTP-сервер»:

nic.ru

В настройках веб-сервера необходимо включить PHP расширение «openssl».

Email — Связь с почтой посредством smtp

Скидка 25% на все тарифы хостинга по промокоду STDCITF

3.2.4. Протокол обмена почтой SMTP (Simple Mail Transfer Protocol)

Протокол SMTP был разработан для обмена почтовыми сообщениями в сети Internet. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25. Достигается это за счет концепции IPCE (Inter-Process Communication Environment). IPCE позволяет взаимодействовать процессам, поддерживающим SMTP, в интерактивном режиме, а не в режиме «STOP-GO».

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

Рис. 3.15. Схема взаимодействия по протоколу SMTP

Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течении нескольких секунд после отправки.

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

Наиболее распространенной дисциплиной является отправление почтового сообщения, которое начинается по команде MAIL, идентифицирующей отправителя:

Следующей командой определяется адрес получателя:

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

Команда DATA вводится без параметров и идентифицирует начало ввода почтового сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой в первой позиции. Согласно стандарту почтового сообщения RFC-822 отправитель передает заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол SMTP не накладывает каких-либо ограничений на информацию, которая заключена между командой DATA и «.» в первой позиции последней строки. Приведем пример обмена сообщениями при дисциплине отправки почты:

Другой дисциплиной, определенной в протоколе SMTP, является перенаправление почтового сообщения (forwarding). Если получатель не найден и известно его местоположение, то сервер может выдать сообщение:

Если сервер может сделать только предположение о дальнейшей рассылке, то ответ будет несколько иным:

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

Используя команду EXPN, можно получить список местных пользователей:

В список дисциплин, разрешенных протоколом SMTP, входит кроме отправки почты еще и прямая рассылка сообщений. В этом случае сообщение будет отправляться не в почтовый ящик, а непосредственно на терминал пользователя, если пользователь в данный момент находится за своим терминалом. Прямая рассылка осуществляется по команде SEND, которая имеет такой же синтаксис, как и команда MAIL. Кроме SEND прямую рассылку осуществляют SOML (Send or Mail) и SAML (Send and Mail).

Для инициализации канала обмена почтой и его закрытия используются команды HELO и QUIT соответственно. Первой командой сеанса должна быть команда HELO.

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

Если сообщение по какой-либо причине не может быть разослано, то получатель формирует сообщение о неразосланном сообщении:

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

Кроме вышеперечисленных дисциплин, протокол позволяет отправителю и получателю меняться ролями друг с другом. Происходит это по команде TURN.

Для отладки или проверки соединения по SMTP можно использовать telnet. Для этого вслед за адресом машины следует ввести номер порта:

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

3.2.5. Интерфейс Eudora

Интерфейс Eudora является одним из множества почтовых интерфейсов, ориентированных на работу с почтой Internet из системы MS-Windows. На примере этого интерфейса мы рассмотрим типичные проблемы, которые возникают у пользователей персональных компьютеров при подключении к почтовому сервису Internet, и пути их решения.

Первой проблемой является тот факт, что компьютер выключается из сети на время отсутствия пользователя. Это значит, что в это время прием почтовых сообщений не производится. Следовательно, вся почта должна хранится на почтовом сервере и получаться пользователем по его запросу. При работе с Unix об этом заботится программа sendmail, в MS-Windows такой программы нет (точнее есть, но она не ориентирована на Internet). Поэтому обычно применяется следующая схема (рисунок 3.16):

Рис. 3.16. Схема работы с почтовым сервером из-под MS-Windows и MS-DOS

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

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

На рисунке 3.17 приведен экран Eudora, на котором представлено меню настройки и два почтовых ящика: принятых писем и отправленных писем.

На этом рисунке в меню настроек хорошо виден POP Account — адрес пользователя на машине-сервере, SMTP-сервер и POP (Ph) сервер. Как видно из настроек, Eudora каждые 30 минут проверяет почтовый ящик пользователя и сообщает о получении новых писем. Кроме того, что Eudora позволяет читать просто письма в обычном почтовом формате Internet (RFC822), о котором пойдет речь в следующем параграфе, она распознает и новый формат, ориентированный на отображение мультимедийных почтовых сообщений MIME, который последнее время становится все более популярен в Internet.

Рис. 3.17. Интерфейс Eudora для MS-Windows

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

И последнее замечание относительно работы из под MS-Windows с почтой в Internet. Если пользователь пишет только по английски, то у него нет проблем с кодировкой и набором текста, но если он пишет по русски и получает такие же сообщения, то сразу же возникают проблемы. Дело в том, что большинство почтовых сетей для обмена данными между серверами используют кодировку KOI8. Эта кодировка отличается как от кодировки для MS-DOS, так и от кодировки MS-Windows. Поэтому, возвращаясь к иллюстрации с настройками интерфейса Eudora, хочется обратить внимание читателя на поля «Send Font» и «Printer Font». В этих полях указан шрифт «Arial-Relcom», который разложен по кодировке KOI8, и используется для отображения и печати почтовых сообщений. Для того, чтобы правильно набирать сообщения, следует к стандартным раскладкам клавиатуры в драйвере клавиатуры (cyrwin, например) добавить раскладку для KOI8.

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

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

3.2.6. Системы почтовой рассылки (программа sendmail)

Основным средством рассылки почты в Internet является программа sendmail. Она обеспечивает работу модульной системы рассылки, которая предназначена для получения и отправки корреспонденции, а также управления программами подготовки и просмотра почтовых сообщений. Sendmail позволяет организовать почтовую службу локальной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы. Send-mail может быть сконфигурирована для работы с различными почтовыми протоколами. Обычно это протоколы UUCP (Unix-Unix-CoPy) и SMTP (Simple Mail Transfer Protocol).


Sendmail работает в стиле «отделения связи» обычной почтовой службы, которое принимает и пересылает почтовые сообщения. Sendmail может интерпретировать два типа почтовых адресов:

  • почтовые адреса SMTP;
  • почтовые адреса UUCP.

Первые являются стандартными адресами Internet и фактически являются стандартом де-факто. Именно этот адрес обычно указан на визитных карточках.

Sendmail можно настроить для поддержки:

  • списка адресов-синонимов;
  • списка адресов рассылки пользователя;
  • автоматической рассылки почты через шлюзы;
  • поддержки очередей сообщений для повторной рассылки почты в случае отказов при рассылке;
  • работы в качестве SMTP-сервера;
  • доступа к адресам машин через сервер доменных имен BIND;
  • для доступа к внешним серверам имен.

3.2.6.1. Принцип работы программы sendmail

Sendmail отправляет почту в два приема: сначала почтовые сообщения собираются в очереди, а затем отсылаются.

Каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения.

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

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

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

Sendmail может быть вызвана:

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

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

  • адреса отправителя и получателя преобразуются в формат сети-получателя почты;
  • если необходимо, то в заголовок сообщения добавляются строки, позволяющие получателю отвечать на принятое сообщение (например: FROM: );
  • почта передается одной из программ рассылки почты.

На рисунке 3.18 представлена схема функционирования почтового сервера на базе программы sendmail.

Рис. 3.18. Схема функционирования почтового сервера на базе программы Sendmail

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

Первый этап рассылки — сбор сообщений. Sendmail получает почтовые сообщения из трех источников:

  • командной строки или стандартного ввода;
  • через SMTP-протокол (из сети);
  • из очереди сообщений.

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

При получении сообщений по протоколу SMTP, sendmail используется как программа клиента и сервера протокола. Протокол определен в RFC-821 и является основным для рассылки почты в Internet. В этом случае sendmail запускается как демон, который «слушает» порт TCP и в случае получения сообщения устанавливает соединение с удаленным клиентом SMTP. Как правило, таким клиентом является другая программа sendmail.

Программа подготовки почты на локальной машине также может использовать SMTP. Для этого sendmail открывает канал (pipe) межпроцессного обмена.

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

Вторая стадия рассылки почты — рассылка сообщений.

Как только одним из описанных выше способов sendmail получила сообщение, делается попытка его отправить по адресу. Для этого sendmail определяет три параметра: программу рассылки, узел сети и получателя. Эта процедура производится по правилам, которые содержатся в файле конфигурации. Sendmail сохраняет одну копию тела сообщения во временном файле, а заголовок загружает в оперативную память. Для каждого сообщения программа доставки (рассылки) сообщений вызывается отдельно. Если сообщение должно быть доставлено на разные машины, то для каждой из машин также вызывается своя программа доставки. Некоторые программы могут обслуживать сразу несколько абонентов одной машины, если это невозможно, то для каждого абонента вызывается также своя программа доставки. Рассматривают два типа рассылки: на удаленную машину и местную рассылку.

Рассылка на удаленную машину. Для вызова программы рассылки sendmail открывает pipe и запускает программу рассылки, командная строка которой находится в файле конфигурации. Sendmail записывает заголовок и тело сообщения в pipe. Если программа рассылки не использует протокол SMTP, то адрес получателя передается через pipe. Если используется SMTP, то открывается двунаправленный канал для интерактивного взаимодействия с удаленным сервером SMTP. Если в качестве транспортного протокола используется TCP, то sendmail не запускает внешнюю программу рассылки, а сама инициирует TCP-соединение с удаленным сервером SMTP.

Доставка местной почты. Если sendmail определяет, что адреса доставки местные, то происходит обращение к файлу адресных синонимов и производится преобразование адресов (расширение). Файл адресных синонимов можно использовать для перенаправления почты в файлы или для обработки местными программами. Пользователь может иметь и свой собственный файл адресных синонимов для управления рассылкой персональной почты. После преобразования адресов почта отправляется программе местной рассылки (например rmail).

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

Местные адреса имеют вид:

Местный адрес — это адрес, который распознается как адрес на машине, с которой осуществляется отправка почты.

Адреса UUCP имеют вид:

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

Адреса SMTP — это адреса, описанные в стандарте RFC-822 или стандартные адреса Internet. Эти адреса имеют вид:

Почта с адресами SMTP рассылается по протоколу SMTP.

Если в системе для адресации используется BIND-сервер, то sendmail может определять адреса получателей, используя сервис BIND. Если BIND не используется, то sendmail сама определяет адреса.

При рассылке почты можно использовать и смешанную адресацию:

Подводя итог под обсуждением принципов работы sendmail следует специально подчеркнуть тот факт, что почта реально рассылается двумя принципиально разными способами. При использовании протокола UUCP почта рассылается по принципу «stop-go», т.е. сообщения передаются от машины к машине по указанному в адресе пути. Следует ясно представлять, если почта ушла с машины отправителя, то это не означает, что она поступит получателю. Промежуточная машина может вернуть почту назад, если не сможет разослать. Электронная почта действительно работает как система обычной почты, физически перемещая и храня сообщения на промежуточных почтовых станциях. При работе по протоколу SMTP почта реально отправляется только тогда, когда установлено интерактивное соединение с программой-сервером на машине-получателе почты. При этом происходит обмен командами между клиентом и сервером протокола SMTP в режиме on-line. При смешанной адресации доставка почты происходит по смешанному сценарию. Как шла доставка и как маршрутизировалось сообщение можно определить из заголовка сообщения, которое вы получили.

3.2.7. Настройка программы sendmail

Настройка программы sendmail происходит при помощи файла /etc/sendmail/conf. Этот файл можно разбить на несколько частей:

  • Описание особенностей данной машины (local information) — в данной секции описываются такие параметры, как имя данной машины, имя UUCP и т.п.
  • Описание макроопределений sendmail, отвечающих за работу в локальной сети, например имя домена и «официальное имя» машины.
  • Описание классов, т.е. групп имен, которые используются программой для рассылки почты. Например, для рассылки в другие почтовые службы.
  • Номер версии файла конфигурации. Данная переменная должна изменяться каждый раз как только в файл конфигурации вносятся какие-либо изменения.
  • Внутренние макроопределения sendmail. В данном разделе присваиваются значения переменным, которые sendmail использует при взаимодействии с другими транспортными агентами.
  • Опции команды sendmail. Опции определяют режимы работы программы. Опции можно задавать в виде параметров командной строки, а можно в виде описаний в файле настройки.
  • Определение порядка сообщений программы sendmail (Precedence). Обычно эта секция не модифицируется администратором.
  • Доверенные пользователи. В данной секции описываются пользователи, которым разрешено переписывать адреса отправителей, т.е. выступать не под тем адресом, который за ними закреплен.
  • Описание формата заголовка почтового сообщения. В данной секции определяются поля и их формат, которые отображаются в заголовке. Многие поля заголовка sendmail генерирует на основе информации из конверта почтового сообщения.
  • Правила преобразования адресов. Это самая большая часть файла конфигурации программы sendmail. Преобразование адресов необходимо для принятия программой решений о пути рассылки почтовых сообщений, т.к. это решение принимается на основе полученного в результате преобразований почтового адреса.
  • Описание программ рассылки. В данной секции описываются имена программ рассылки, пути и параметры командной строки этих программ. Обычно это программа местной рассылки, рассылка по UUCP, рассылка по SMTP, рассылка на выполнение.
  • Общий набор правил преобразования адресов, который не меняется от машины к машине и от конфигурации к конфигурации (Rule Set 0).
  • Машино-зависимая часть общего правила преобразования адресов. В данной секции содержание определяется способом рассылки почты. Например, данная секция при рассылке по SMTP будет отличаться от случая рассылки по UUCP.

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

В целом все описанные выше секции решают три основных задачи:

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

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

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

Команда Синтаксис Назначение
Define Macro Dxvalue Установить значение x
Define Class Ссword1 word2 . Установить значение класса c
Define Class Fcfile загрузить значение класса из файла
Set Option Oovalue Установить значение опции o
Trusted Users Tuser1 user2 . Определить доверенных пользователей
Set Precedence Pname=number Для номера ошибки number установить имя name
Define Mailer Mname,[field=value] Определить программу рассылки почты.
Define Header H[?mflag?]name:format Определить формат поля заголовка
Set Rulset Sn Начать определение набора правил преобразования адресов
Define Rule Rlhs rhs comment Определить правило преобразования адреса.

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

Рис. 3.19. Структура команды файла настроек sendmail

Теперь разберем более подробно некоторые команды и секции файла настроек sendmail. Лучше всего это сделать на основе реального файла. Начнем с секции описания локальных параметров:

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

Следующая секция — определение макросов sendmail:

В данной секции описаны сообщения, которые выдает sendmail при взаимодействии с другими транспортными агентами. Как видно из этого описания, определение макроса это не только присваивание значения, но и выполнение определенных действий. Наиболее интересное предложение из всех — предложение определяющее значение макроса q:

Здесь описана условная подстановка значения. Все предложение можно описать следующей фразой:

То же самое можно записать и по другому:

В данном случае $? соответствует оператору if, $| — else, а $. — конец условного оператора.

Следующая секция — это определение опций:

В данном случае приведен только фрагмент этой секции. Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт, что по почте можно пересылать 7-битовую информацию. Согласно RFC-822 информация должна быть 7-битовая, но для передачи кириллицы это значит использовать кодирование, что абсолютно не приемлемо. Поэтому данный параметр должен быть закомментирован. В системах, где используется сервер доменных имен, опция I должна быть установлена, чтобы не было ошибок при идентификации доменов. Последний параметр не является принципиальным, но для более понятного представления его следует установить. Если почтовый клиент не поддерживает MIME, то данный параметр следует закомментировать.

Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей:

За этими двумя секциями следует секция описания полей заголовка почтового сообщения, который генерируется программой sendmail:

Формат команд данной секции определяет, какие поля включаются в заголовок, а какие не включаются. Данная секция тесно связана с секцией определения программ рассылки почты. Если после «H» нет знака вопроса, то поле включается в заголовок сообщения для любой программы рассылки, если после «H» символ «?» присутствует, то в строке аргументов программы рассылки данный флаг должен быть определен для того, чтобы данное поле было включено в заголовок. Как следует из приведенного выше описания, всегда включаются только поля Recieved и Subject. Все перечисленные поля не являются обязательными полями заголовка.

Следующая секция — правила преобразования адресов. Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает.

Рис. 3.20. Порядок обработки адресов

Данная диаграмма представляет типовой набор блоков правил преобразования адресов. Как видно из рисунка, все адреса попадают на правила канонизации адресов (Rule Set 3). Если адреса достаточны для рассылки, то выполняется набор правил 0, в противном случае адреса анализируются на наличие в них доменной информации и, если данная информация отсутствует, то в блоке D она добавляется к адресу. Набор 1 применяется ко всем адресам отправителей, набор 2 применяется ко всем адресам получателей. Набор правил 4 — это выходной набор, который предназначен для преобразования адресов в формат программ рассылки. Ниже приведен фрагмент правил набора 3:

Не будем подробно разбирать все записи секции преобразования адресов, их очень много, поясним только сам механизм этого преобразования. Механизм основывается на применении так называемых token’ов и pattern’ов, образованных этими token’ами.

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

Pattern Значение
$* пусто или любое количество token’ов
$+ один или более token’ов
$- точно один token
$=x любое количество token’ов одного класса x
$

x

любое количество token’ов, не принадлежащих классу x
$x все token’ы макро x
Символ Значение
$n Token номер n
$[name$] Каноническое имя
$>n Вызвать набор правил n
$@ Завершить набор правил
$: Завершить правило
$#mailer$@host$:user образец вызова программы рассылки

Приведем пример преобразования:

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

Речь идет о преобразовании адресов сообщений отправленных в BITNET.

Ниже приведен фрагмент правил набора 0, в котором определяется рассылка почты программами рассылки:

За секцией преобразования адресов следует секция определения программ рассылки почты. В ней определяется локальная программа рассылки (mail), программа рассылки для выполнения (sh), и программа рассылки по SMTP.


Затем идут правила определения локального преобразования адресов для конкретных программ рассылки, в частности набор правил S11.

В секции программ рассылки мы в нашем примере не указали еще одну важную возможность — рассылку по протоколу UUCP:

Естественно, что правила преобразования адресов S13 и R23 должны быть описаны в файле настроек sendmail.

3.2.7.1. Тестирование Sendmail и способы запуска

При работе с программой Sendmail возникает ряд ситуаций, когда необходимо протестировать работу системы рассылки электронной почты. Чаще всего это связано с тем, что программа неаккуратно работает с сервисом доменных имен. Дело в том, что определение макросов w и j связано скорее с функционированием системы в среде NIS, а не BIND, что влечет за собой определенные проблемы при идентификации программы при работе по SMTP, например.

Собственно проблемы возникают между sendmail и resolver. Для их решения следует в файле конфигурации resolver не указывать имя домена, а в файле настроек sendmail сделать это явно.

Для проверки работы можно запустить sendmail с ключом -v:

Как видно из этого примера, система выдает полную трассу взаимодействия с удаленным хостом по протоколу SMTP.

Стандартный режим запуска sendmail — это запуск в виде процесса демона в момент начальной загрузки системы:

Однако, надо всегда помнить, что перед запуском в режиме демона следует создать файл ali-ases:

Email — Связь с почтой посредством smtp

Для настройки почтовой программы вам потребуется следующая информация:

Полное имя почтового ящика, включая логин, @ и домен

Электронный адрес Полное имя почтового ящика, включая логин, @ и домен
Сервер входящей почты (IMAP- и POP3-сервера) IMAP-сервер — imap.mail.ru
POP3-сервер — pop.mail.ru
Сервер исходящей почты (SMTP-сервер) smtp.mail.ru
Имя пользователя
Пароль Пароль, который вы используете для входа в почтовый ящик
Порт IMAP — 993 (протокол шифрования SSL/TLS)
POP3 — 995 (протокол шифрования SSL/TLS)
SMTP — 465 (протокол шифрования SSL/TLS)
Аутентификация Обычный пароль (без шифрования)

В настройках почтовой программы необходимо указать, что сервер исходящей почты (или сервер SMTP) требует авторизации.

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

Проверка связи по протоколу SMTP на серверах Exchange с помощью Telnet Use Telnet to test SMTP communication on Exchange servers

С помощью Telnet можно тестировать обмен данными по протоколу SMTP между серверами обмена сообщениями. You can use Telnet to test Simple Mail Transfer Protocol (SMTP) communication between messaging servers. SMTP — это протокол, который используется для отправки сообщений электронной почты с одного сервера обмена сообщениями на другой. SMTP is the protocol that’s used to send email messages from one messaging server to another. Использование Telnet может пригодиться, если у вас возникают проблемы с отправкой и получением сообщений, так как вы можете вручную отправить команды SMTP на сервер обмена сообщениями. Using Telnet can be helpful if you’re having trouble sending or receiving messages because you can manually send SMTP commands to a messaging server. В случае возврата сервер ответит ответами, которые будут возвращаться в типичном подключении. In return, the server will reply with responses that would be returned in a typical connection. Эти результаты могут помочь выяснить, почему вы не можете отправлять и получать сообщения. These results can sometimes help you to figure out why you can’t send or receive messages.

Вы можете использовать Telnet для проверки связи по протоколу SMTP, чтобы: You can use Telnet to test SMTP communication to:

Протестируйте потоки обработки почты из Интернета в организацию Exchange. Test mail flow from the Internet into your Exchange organization.

Протестируйте процесс обработки почты из Exchange на другом сервере обмена сообщениями в Интернете. Test mail flow from your Exchange to another messaging server on the Internet.

Знаете ли вы, что вместо использования Telnet для проверки подключения SMTP вы можете использовать анализатор удаленного подключения Майкрософт на сайте https://testconnectivity.microsoft.com/? Did you know that, instead of using Telnet to test SMTP connectivity, you can use the Microsoft Remote Connectivity Analyzer at https://testconnectivity.microsoft.com/? С помощью анализатора удаленного подключения вы можете выбрать требуемый тест подключения, в данном случае входящей электронной почты SMTPи следуйте инструкциям. With the Remote Connectivity Analyzer, you can choose the connectivity test you want to do, in this case Inbound SMTP Email, and follow the instructions shown. В этом разделе представлены сведения, которые необходимо ввести, выполнить тест для вас и предоставить результаты. It’ll step you through the information you need to enter, run the test for you, and then give you the results. Повторите попытку. Give it a try!

Что нужно знать перед началом работы What do you need to know before you begin?

Предполагаемое время для завершения: 15 минут. Estimated time to complete: 15 minutes

Разрешения Exchange не применяются к процедурам, описанным в этом разделе. Exchange permissions don’t apply to the procedures in this topic. Эти процедуры выполняются в операционной системе сервера Exchange или клиентского компьютера. These procedures are performed in the operating system of the Exchange server or a client computer.

В этом разделе показано, как использовать клиент Telnet, входящий в состав Windows. This topic shows you how to use Telnet Client, which is included with Windows. Сторонние Клиенты Telnet могут иметь синтаксис, отличный от того, что показано в этом разделе. Third-party Telnet clients might require syntax that’s different from what’s shown in this topic.

Действия, описанные в этом разделе, показывают, как подключаться к серверу, подключенному к Интернету и поддерживающему анонимные подключения с помощью TCP-порта 25. The steps in this topic show you how to connect to an Internet-facing server that allows anonymous connections using TCP port 25. Если вы пытаетесь подключиться к этому серверу из Интернета, вам необходимо убедиться, что сервер Exchange доступен из Интернета через TCP-порт 25. If you’re trying to connect to this server from the Internet, you need to make sure your Exchange server is reachable from the Internet on TCP port 25. Аналогично, если вы пытаетесь получить доступ к серверу в Интернете с сервера Exchange Server, необходимо убедиться, что сервер Exchange Server может открыть подключение к Интернету через TCP-порт 25. Similarly, if you’re trying to reach a server on the Internet from your Exchange server, you need to make sure your Exchange server can open a connect to the Internet on TCP port 25.

Вы можете заметить некоторые соединители получения, использующие TCP-порт 2525. You might notice some Receive connectors that use TCP port 2525. Это внутренние соединители получения, которые не используются для приема анонимных SMTP-подключений. These are internal Receive connectors and aren’t used to accept anonymous SMTP connections.

При тестировании подключения на удаленном сервере обмена сообщениями необходимо выполнить действия, описанные в этом разделе, на сервере Exchange. If you’re testing a connection on a remote messaging server, you should run the steps in this topic on your Exchange server. Серверы удаленной системы обмена сообщениями часто настраивают, чтобы IP-адрес, с которого поступило подключение SMTP, совпадал с доменом в адресе электронной почты отправителя. Remote messaging servers are often set up to make sure the IP address where the SMTP connection is coming from matches the domain in the sender’s email address.

Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange. For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Server, Exchange Online или Exchange Online Protection. Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

Шаг 1: Установка клиента Telnet на компьютере Step 1: Install the Telnet Client on your computer

В большинстве версий Windows вам потребуется установить клиент Telnet, прежде чем его можно будет использовать. On most versions of Windows, you’ll need to install the Telnet client before you can use it. Чтобы установить его, ознакомьтесь со статьей Установка клиента Telnet. To install it, see Install Telnet Client.

Шаг 2: Поиск полного доменного имени или IP-адреса конечного SMTP-сервера Step 2: Find the FQDN or IP address of the destination SMTP server

Для подключения к SMTP-серверу с помощью Telnet через порт 25 необходимо использовать полное доменное имя (например, mail.contoso.com) или IP-адрес SMTP-сервера. To connect to an SMTP server by using Telnet on port 25, you need to use the fully-qualified domain name (FQDN) (for example, mail.contoso.com) or the IP address of the SMTP server. Если вы не знаете полное доменное имя или IP-адрес, вы можете использовать средство командной строки Nslookup, чтобы найти запись MX для конечного домена. If you don’t know the FQDN or IP address, you can use the Nslookup command-line tool to find the MX record for the destination domain.

Политики сети могут препятствовать использованию средства Nslookup для запроса общедоступных DNS-серверов в Интернете. Network policies might prevent you from using the Nslookup tool to query public DNS servers on the Internet. В качестве альтернативы можно использовать один из доступных в Интернете веб-сайтов поиска DNS или записи MX. As an alternative, you can use one of the freely-available DNS lookup or MX record lookup web sites on the Internet.

В командной строки введите nslookup, а затем нажмите клавишу ВВОД. At a command prompt, type nslookup, and then press Enter. Эта команда открывает сеанс Nslookup. This command opens the Nslookup session.

Введите set Type = MX и нажмите клавишу ВВОД. Type set type=mx, and then press Enter.

Введите имя домена, для которого требуется найти запись MX. Type the name of the domain for which you want to find the MX record. Например, чтобы найти запись MX для домена fabrikam.com, введите fabrikam.com., а затем нажмите клавишу ВВОД. For example, to find the MX record for the fabrikam.com domain, type fabrikam.com., and then press Enter.

При использовании завершающей точки (. When you use a trailing period ( . ) вы предотвратите непреднамеренное Добавление DNS-суффиксов по умолчанию в доменное имя. ), you prevent any default DNS suffixes from being unintentionally added to the domain name.

Выходные данные команды выглядят так: The output of the command looks like this:

  1. Когда вы будете готовы завершить сеанс nslookup, введите команду Exit и нажмите клавишу ВВОД. When you’re ready to end the Nslookup session, type exit, and then press Enter.

Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP. Step 3: Use Telnet on Port 25 to test SMTP communication

В этом примере мы будем использовать следующие значения. In this example, we’re going to use the following values. При выполнении команд на сервере замените эти значения на имена SMTP-сервера организации, домена и т. д. When you run the commands on your server, replace these values with ones for your organization’s SMTP server, domain, etc.

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

Исходный домен: contoso.com Source domain: contoso.com

Адрес электронной почты отправителя: Chris@contoso.com Sender’s e-mail address: chris@contoso.com

Адрес получателя электронной почты: Kate@fabrikam.com Recipient’s e-mail address: kate@fabrikam.com

Тема сообщения: тест из Contoso Message subject: Test from Contoso

Текст сообщения: это тестовое сообщение Message body: This is a test message

Команды в клиенте Telnet не учитывают регистр. The commands in the Telnet Client aren’t case-sensitive. Команды SMTP в этом примере заменяются прописными для ясности. The SMTP command verbs in this example are capitalized for clarity. После подключения к SMTP-серверу назначения невозможно использовать клавишу BACKSPACE в сеансе Telnet. You can’t use the backspace key in the Telnet session after you connect to the destination SMTP server. Если при вводе команды SMTP допущена ошибка, необходимо нажать клавишу ВВОД, а затем ввести команду еще раз. If you make a mistake as you type an SMTP command, you need to press Enter, and then type the command again. Нераспознанные команды SMTP или синтаксические ошибки приводят к появлению сообщения об ошибке, которое выглядит следующим образом: 500 5.3.3 Unrecognized command Unrecognized SMTP commands or syntax errors result in an error message that looks like this: 500 5.3.3 Unrecognized command

Откройте окно командной строки, введите telnet , а затем нажмите клавишу ВВОД. Open a Command Prompt window, type telnet , and then press Enter.

Эта команда открывает сеанс Telnet. This command opens the Telnet session.

Введите set localecho команду и нажмите клавишу ВВОД. Type set localecho , and then press Enter.

Эта **** Необязательная команда позволяет просматривать символы при их вводе и может потребоваться для некоторых SMTP-серверов. This optional command lets you view the characters as you type them, and it might be required for some SMTP servers.

Введите set logfile команду и нажмите клавишу ВВОД. Type set logfile , and then press Enter.

Эта **** Необязательная команда включает ведение журнала и указывает файл журнала для сеанса Telnet. This optional command enables logging and specifies the log file for the Telnet session. Если указать только имя файла, файл журнала будет находиться в текущей папке. If you only specify a file name, the log file is located in the current folder. Если указан путь и имя файла, путь должен находиться на локальном компьютере, а путь и имя файла в формате Windows DOS 8,3 (сокращенное имя без пробелов). If you specify a path and file name, the path needs to be on the local computer, and you might need to enter the path and file name in the Windows DOS 8.3 format (short name with no spaces). Путь должен существовать, но файл журнала создается автоматически. The path needs to exist, but the log file is created automatically.

Введите OPEN mail1.fabrikam.com 25 команду и нажмите клавишу ВВОД. Type OPEN mail1.fabrikam.com 25 , and then press Enter.

Введите EHLO contoso.com команду и нажмите клавишу ВВОД. Type EHLO contoso.com , and then press Enter.

Введите MAIL FROM: команду и нажмите клавишу ВВОД. Type MAIL FROM: , and then press Enter.

Введите RCPT TO: NOTIFY=success,failure команду и нажмите клавишу ВВОД. Type RCPT TO: NOTIFY=success,failure , and then press Enter.

Необязательная команда NOTIFY указывает конкретные сообщения о доставке (сообщения о недоставке, отчеты о недоставке или отчеты о недоставке), которые необходимо предоставить SMTP. The optional NOTIFY command specifies the particular delivery status notification (DSN) messages (also known as bounce messages, nondelivery reports, or NDRs) that the SMTP is required to provide. В этом примере запрашивается сообщение DSN для успешной или неудачной доставки сообщения. In this example, you’re requesting a DSN message for successful or failed message delivery.

Введите DATA команду и нажмите клавишу ВВОД. Type DATA , and then press Enter.

Введите Subject: Test from Contoso команду и нажмите клавишу ВВОД. Type Subject: Test from Contoso , and then press Enter.

Еще раз нажмите клавишу ВВОД. Press Enter again.

Между полем Subject: и текстом сообщения необходимо ввести пустую строку. A blank line is needed between the Subject: field and the message body.


Введите This is a test message команду и нажмите клавишу ВВОД. Type This is a test message , and then press Enter.

Введите точку (. Type a period ( . ) и нажмите клавишу ВВОД. ), and then press Enter.

Чтобы отключиться от сервера SMTP, введите QUIT команду и нажмите клавишу ВВОД. To disconnect from the SMTP server, type QUIT , and then press Enter.

Чтобы закрыть сеанс Telnet, введите команду quit и нажмите клавишу ВВОД. To close the Telnet session, type quit , and then press Enter.

Вот как выглядит успешный сеанс, выполнив приведенные выше действия. Here’s what a successful session using the steps above looks like:

Шаг 4: успешные и появляющиеся сообщения об ошибках в сеансе Telnet Step 4: Success and error messages in the Telnet Session

В этом разделе представлены сведения об успешных и неудачных откликах для команд, использованных в предыдущем примере. This section provides information about the success and failure responses to the commands that were used in the previous example.

Коды откликов SMTP из трех цифр, определенные в стандарте RFC 5321, одинаковы для всех SMTP-серверов обмена сообщениями, но текстовые описания в ответах могут слегка отличаться. The three-digit SMTP response codes that are defined in RFC 5321 are the same for all SMTP messaging servers, but the text descriptions in the responses might be slightly different.

Коды ответа SMTP SMTP reply codes

SMTP-серверы отвечают на команды с различными числовыми кодовыми ответами в формате x. y. z, где: SMTP servers respond to commands with a variety of numerical reply codes in the format of x.y.z where:

X указывает, является ли команда хорошей, плохой или неполной. X indicates whether the command was good, bad, or incomplete.

Y указывает тип отправленного отклика. Y indicates the kind of response that was sent.

Z предоставляет дополнительные сведения о команде Z provides additional information about the command

Когда сервер, который открыл подключение, получает ответ, он может определить, принял ли удаленный сервер команду и готов к следующему, или если произошла ошибка. When a response is received by the server that opened the connection, it can tell whether the remote server accepted the command and is ready for the next one, or if an error occurred.

Первая цифра (X) особенно важна, так как она указывает на успешность или неудачу отправки команды. The first digit (X) is particularly important to understand because it indicates the success or failure of the command that was sent. Ниже приведены возможные значения и их значения. Here are its possible values, and their meanings.

Код ответа Reply code Смысл Meaning
2. y. z 2.y.z Отправленная команда успешно выполнена на удаленном сервере. The command that was sent was successfully completed on the remote server. Удаленный сервер готов к следующей команде. The remote server is ready for the next command.
3. y. z 3.y.z Команда была принята, но удаленному серверу требуются дополнительные сведения, прежде чем операция может быть завершена. The command was accepted but the remote server needs more information before the operation can be completed. Отправляющий сервер должен отправить новую команду с необходимыми сведениями. The sending server needs to send a new command with the needed information.
4. y. z 4.y.z Команда не была принята удаленным сервером по причине, которая может быть временной. The command wasn’t accepted by the remote server for a reason that might be temporary. Отправляющий сервер должен попытаться подключиться позже, чтобы проверить, может ли удаленный сервер успешно принять команду. The sending server should try to connect again later to see if the remote server can successfully accept the command. Отправляющий сервер повторит попытку подключения, пока не завершится успешное соединение (обозначено кодом 2. y. z) или завершается неудачно (код 5. y. z). The sending server will continue to retry the connection until either a successful connection is completed (indicated by a 2.y.z code) or fails permanently (indicated by a 5.y.z code).
Пример временной ошибки — нехватку места на удаленном сервере. An example of a temporary error is low storage space on the remote server. После того как освободится свободное место, удаленный сервер сможет успешно принять команду. Once more space is made available, the remote server should be able to successfully accept the command.
5. y. z 5.y.z Команда не была принята удаленным сервером по причине, которая не может быть восстановлена. The command wasn’t accepted by the remote server for a reason that is isn’t recoverable. Отправляющий сервер не будет повторять подключение и отправит отчет о недоставке пользователю, который отправил сообщение. The sending server won’t retry the connection and will send a non-delivery report back to the user who sent the message.
Примером неисправимой ошибки является сообщение, которое отправляется на несуществующий адрес электронной почты. An example of an unrecoverable error is a message that’s sent to an email address that doesn’t exist.

Приведенная выше таблица основана на информации, предоставленной в RFC 5321 (Simple Mail Transfer Protocol), в разделе 4.2.1. The table above is based on information provided by RFC 5321 (Simple Mail Transfer Protocol), section 4.2.1. В этот раздел включены дополнительные сведения, в том числе описания второй (Y) и третьей (Z) цифр (Z) кодов ответов SMTP, а также в разделах 4.2.2 и 4.2.3. Additional information, including descriptions of the second (Y) and third (Z) digits of SMTP reply codes is included in this section, and in sections 4.2.2 and 4.2.3.

Команда «Открыть» OPEN command

Успешный ответ: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Successful response: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at

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

Возможные причины сбоя Possible reasons for failure

SMTP-служба назначения недоступна. The destination SMTP service is unavailable.

Ограничения на конечный брандмауэр. Restrictions on the destination firewall.

Ограничения для исходного брандмауэра. Restrictions on the source firewall.

Неправильное полное доменное имя или IP-адрес SMTP-сервера назначения. Incorrect FQDN or IP address for the destination SMTP server.

Неверный номер порта. Incorrect port number.

Команда EHLO EHLO command

Успешный ответ: 250 mail1.fabrikam.com Hello [ ] Successful response: 250 mail1.fabrikam.com Hello [ ]

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

Возможные причины сбоя Possible reasons for failure

Недопустимые символы в имени домена. Invalid characters in the domain name.

Ограничения подключения на SMTP-сервере назначения. Connection restrictions on the destination SMTP server.

EHLO — это команда расширенного протокола передачи сообщений (ESMTP), определенная в RFC 5321. EHLO is the Extended Simple Message Transfer Protocol (ESMTP) verb that’s defined in RFC 5321. ESMTP-серверы могут объявлять о своих возможностях в процессе начального подключения. ESMTP servers can advertise their capabilities during the initial connection. К этим возможностям относятся максимальный допустимый размер сообщения и поддерживаемые методы проверки подлинности. These capabilities include the maximum accepted message size and supported authentication methods. HELO — это более старая команда SMTP, определенная в RFC 821. HELO is the older SMTP verb that is defined in RFC 821. Большинство SMTP-серверов обмена сообщениями поддерживают ESMTP и EHLO. Most SMTP messaging servers support ESMTP and EHLO. Если сервер, не являющийся сервером Exchange, к которому вы пытаетесь подключиться, не поддерживает EHLO, вы можете использовать HELO. If the non-Exchange server that you’re trying to connect to doesn’t support EHLO, you can use HELO instead.

Команда «почта» MAIL FROM command

Успешный ответ: 250 2.1.0 Sender OK Successful response: 250 2.1.0 Sender OK

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

Возможные причины сбоя: синтаксическая ошибка в адресе электронной почты отправителя. Possible reasons for failure: A syntax error in the sender’s e-mail address.

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

Возможные причины сбоя: целевой сервер не принимает анонимные отправки сообщений. Possible reasons for failure: The destination server doesn’t accept anonymous message submissions. Эта ошибка возникает при попытке использовать Telnet для передачи сообщения непосредственно на сервер почтовых ящиков, у которого нет соединителя получения, настроенного на прием анонимных подключений. You receive this error if you try to use Telnet to submit a message directly to a Mailbox server that doesn’t have a Receive connector that’s configured to accept anonymous connections.

Команда «о доставке» RCPT TO command

Успешный ответ: 250 2.1.5 Recipient OK Successful response: 250 2.1.5 Recipient OK

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

Возможные причины сбоя: указанный получатель не существует. Possible reasons for failure: The specified recipient doesn’t exist.

Отправка почты через SMTP, как это работает

26 декабря 2020 г. 0 Александр Хмельницкий 1373 SMTP, mail

SMTP — Simple Mail Transfer Protocol (простой протокол передачи почты). Сетевой протокод для передачи электронной почты.

Обычно SMTP используют только для отправки сообщений на почтовый сервер. Для получения сообщений используются другие протоколы, такие как POP (Post Office Protocol) или IMAP (Internet Message Access Protocol).

Принцип отправки и доставка электронной почты очень похож на принцип отправки и доставки классической (бумажной) почты.

При таком сравнении SMTP-сервер будет выступать почтальоном, который забирает ваше письмо. А после с почты оно отправляется получателю. И уже другой почтальон, в данном случае это POP/IMAP, доставляет его получателю в ящик. Рассмотрим этот процесс подробнее, со стороны отправки писем с сайта (однако общий принцип будет такой же).

Вы создаете письмо и вызываете функцию отправки сообщения.

Функция в свою очередь подключается к SMTP-серверу согласно указанным вами данным: порт, хост, логин, пароль.

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

E-mail будет доставлен немедленно, если домен вашего получателя напрямую подключается к серверу. Иначе, электронная почта будет передана другому ближайшему серверу входящей почты с помощью SMTP. После чего веб-сервер соединяется с сервером получателя (он будет определен по MX записи домена получателя), который получит электронную почту и будет хранить ее.

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

Последним шагом будет обрабатываться POP/IMAP, который заберет почту от принимающего сервера и положит во «Входящие» получателя.

Ниже приведена графическая схема отправки почты по SMTP.

Web разработчик, специализируюсь на разработке full stack веб-приложений.
Если у вас есть предложения или вопросы свяжитесь со мной: facebook

Бесплатные SMTP — Как настроить

SMTP сервер нужен:

  • чтобы проверять настройки и выдавать разрешение на отправку почты с компьютера отправителя;
  • чтобы доставлять почту получателю и сообщать об ошибке отправке при наличии таковой.

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

Настройка бесплатного SMTP сервера происходит в меню «Настройки» -> «Мастер SMTP» в разделе «Использовать внешний SMTP»

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

Настройки предустановленного сервера всегда можно изменить.

Далее рассматривается создание и настройка SMTP серверов с нуля (пункт «Свой SMTP сервер»).

Как настроить SMTP для Gmail

Важно! У вас должен быть зарегистрирован аккаунт в почтовом сервисе Gmail.com

Запустив ePochta Mailer и перейдя по пунктам «Настройки» -> «Мастер SMTP» -> «Использовать внешний SMTP» -> «Добавить свой SMTP сервер», вы увидите окно для настройки параметров SMTP сервера.

Заполняем обязательные параметры:

1) SMTP сервер для gmail прописывается как smtp.gmail.com


2) Далее укажите порт. Его значение напрямую связано с шифрованием, которое вы выберете. Вам нужен 465 порт для SSL шифрования и 587 порт для шифрования TSL.

3) Gmail SMTP сервер требует авторизацию, поэтому в этом пункте стоит выбрать «ESMTP-RFC 2554», что укажет серверу механизм идентификации отправителя и гарантирует дополнительный уровень безопасности.

4) Шифрование обязательно. Отталкиваясь от указанного порта, выбирайте тип шифрования.

5) Логин/пароль — укажите свой личный логин в виде example@gmail.com и пароль от зарегистрированного аккаунта в gmail.com

6) POP сервер — это сервер для приема почты в сторонних почтовых клиентах типа The Bat! Outlook, Thunderbird и т.д.
Нас интересует отправка рассылок, поэтому данное поле можно оставить пустым. Но всё же, если вы решили его настроить, следует изменить значение Авторизации на POP before SMTP и прописать параметры: pop.gmail.com : 995

7) Email отправителя — это адрес, что получатель будет видеть в строке «От кого». Убедитесь, что указываете корректный действующий электронный адрес.

8) Так как gmail.com имеет ограничение на количество отправленных писем — не более 100 писем в сутки на уникальные email адреса — важно установить лимит на отправку. Для первых массовых рассылок можно даже снизить значение на 20-30 % меньше доступного лимита.
Лимит по скорости — 20 писем в час.

Как настроить SMTP для Yahoo

Важно! У вас должен быть зарегистрирован аккаунт в почтовом сервисе Yahoo.com

Запустив ePochta Mailer и перейдя по пунктам «Настройки» -> «Мастер SMTP» -> «Использовать внешний SMTP» -> «Добавить свой SMTP сервер», вы увидите окно для настройки параметров SMTP сервера.

Заполняем обязательные параметры:

SMTP сервер для yahoo прописывается как smtp.mail.yahoo.com

Порт: 465 (для SSL шифрования) — рекомендуется
Альтернативный порт: 587 (для TLS шифрования).

Yahoo SMTP сервер требует авторизацию, поэтому в этом пункте стоит выбрать «ESMTP-RFC 2554», что укажет серверу механизм идентификации отправителя и гарантирует дополнительный уровень безопасности.

Шифрование обязательно. Отталкиваясь от указанного порта, выбирайте тип шифрования.

Логин/пароль — укажите свой личный логин в виде example@yahoo.com и пароль от этого зарегистрированного аккаунта.

POP сервер — это сервер для приема почты в сторонних почтовых клиентах типа The Bat! Outlook, Thunderbird и т.д.
Нас интересует отправка рассылок, поэтому данное поле можно оставить пустым. Но всё же, если вы решили его настроить, следует изменить значение Авторизации на POP before SMTP и прописать параметры: pop.mail.yahoo.com:995

Email отправителя — это адрес, что получатель будет видеть в строке «От кого». Убедитесь, что указываете корректный действующий электронный адрес.

Так как yahoo.com имеет ограничение на количество отправленных писем — не более 100 писем в сутки на уникальные email адреса — важно установить лимит на отправку. Для первых массовых рассылок можно даже снизить значение на 20-30 % меньше доступного лимита.
Лимит по скорости — 100 писем в час.

Как настроить SMTP для Hotmail

Важно! У вас должен быть зарегистрирован аккаунт в @hotmail.com или @live.com.

Запустив ePochta Mailer и перейдя по пунктам «Настройки» -> «Мастер SMTP» -> «Использовать внешний SMTP» -> «Добавить свой SMTP сервер», вы увидите окно для настройки параметров SMTP сервера.

Заполняем обязательные параметры:

SMTP сервер для hotmail.com прописывается как smtp.live.com

Значение параметра «порт» для smtp.live.com Порт: 25
Важно: Если вы видите, что порт 25 не работает и заблокирован, можете использовать SMTP порт 587 с включенным SSL шифрованием.

Hotmail SMTP сервер требует авторизацию, поэтому в этом пункте стоит выбрать«ESMTP-RFC 2554», что укажет серверу механизм идентификации отправителя и гарантирует дополнительный уровень безопасности.

Отталкиваясь от указанного порта, выбирайте тип шифрования.

Логин/пароль — укажите свой личный логин в виде example@hotmail.com и пароль от этого зарегистрированного аккаунта.

POP сервер — это сервер для приема почты в сторонних почтовых клиентах типа The Bat! Outlook, Thunderbird и т.д.
Нас интересует отправка рассылок, поэтому данное поле можно оставить пустым. Но всё же, если вы решили его настроить, следует изменить значение Авторизации на POP before SMTP и прописать параметры: pop3.live.com:995

Email отправителя — это адрес, что получатель будет видеть в строке «От кого». Убедитесь, что указываете корректный действующий электронный адрес.

Так как hotmail.com имеет ограничение на количество отправленных писем — не более 200 писем в сутки на уникальные email адреса — важно установить лимит на отправку. Для первых массовых рассылок можно даже снизить значение на 20-30 % меньше доступного лимита.
Лимит по скорости — 28 писем в час.

Как настроить SMTP для Yandex

Важно! У вас должен быть зарегистрирован аккаунт в @yandex.ru.

Запустив ePochta Mailer и перейдя по пунктам «Настройки» -> «Мастер SMTP» -> «Использовать внешний SMTP» -> «Добавить свой SMTP сервер», вы увидите окно для настройки параметров SMTP сервера.

Заполняем обязательные параметры:

SMTP сервер для yandex.ru прописывается как smtp.yandex.ru

Укажите порт. Его значение напрямую связано с шифрованием, которое вы выберете.
Порт с шифрованием: 465. Порт без шифрования: 25, 587

Yandex SMTP сервер требует авторизацию, поэтому в этом пункте рекомендуется выбрать «ESMTP-RFC 2554», что укажет серверу механизм идентификации отправителя и гарантирует дополнительный уровень безопасности.

Отталкиваясь от указанного порта, выбирайте тип шифрования.

Логин/пароль — укажите свой личный логин в виде example@yandex.ru и пароль от этого зарегистрированного аккаунта.

POP сервер — это сервер для приема почты в сторонних почтовых клиентах типа The Bat! Outlook, Thunderbird и т.д.
Нас интересует отправка рассылок, поэтому данное поле можно оставить пустым. Но всё же, если вы решили его настроить, следует изменить значение Авторизации на POP before SMTP и прописать параметры: pop.yandex.ru:995

Email отправителя — это адрес, что получатель будет видеть в строке «От кого». Убедитесь, что указываете корректный действующий электронный адрес.

Так как yandex.ru имеет ограничение на количество отправленных писем — не более 150 писем в сутки на уникальные email адреса — важно установить лимит на отправку. Для первых массовых рассылок можно даже снизить значение на 20-30 % меньше доступного лимита.
Лимит по скорости — 6 писем в час.

Как настроить SMTP для Mail.ru

Важно! У вас должен быть зарегистрирован аккаунт в @mail.ru ( @list.ru; @inbox.ru; @bk.ru;).

Запустив ePochta Mailer и перейдя по пунктам «Настройки» -> «Мастер SMTP» -> «Использовать внешний SMTP» -> «Добавить свой SMTP сервер», вы увидите окно для настройки параметров SMTP сервера.

Заполняем обязательные параметры:

SMTP сервер для mail.ru прописывается как smtp.mail.ru (smtp.list.ru; smtp.inbox.ru; smtp.bk.ru;)

Укажите порт. Его значение напрямую связано с шифрованием, которое вы выберете.
Порт с шифрованием: 465. Порт без шифрования: 25, 587

Mail.ru SMTP сервер требует авторизацию, поэтому в этом пункте рекомендуется выбрать «ESMTP-RFC 2554», что укажет серверу механизм идентификации отправителя и гарантирует дополнительный уровень безопасности.

Отталкиваясь от указанного порта, выбирайте тип шифрования.

Логин/пароль — укажите свой личный логин в виде example@mail.ru (example@list.ru; example@inbox.ru; example@bk.ru;) и пароль от этого зарегистрированного аккаунта.

POP сервер — это сервер для приема почты в сторонних почтовых клиентах типа The Bat! Outlook, Thunderbird и т.д.
Нас интересует отправка рассылок, поэтому данное поле можно оставить пустым. Но всё же, если вы решили его настроить, следует изменить значение Авторизации на POP before SMTP и прописать параметры: pop.mail.ru (pop.list.ru; pop.inbox.ru; pop.bk.ru;):110

Email отправителя — это адрес, что получатель будет видеть в строке «От кого». Убедитесь, что указываете корректный действующий электронный адрес.

Так как mail.ru имеет ограничение на количество отправленных писем — не более 1 письма в минуту на уникальные email адреса — важно установить лимит на отправку. Для первых массовых рассылок можно даже снизить значение на 20-30 % меньше доступного лимита.
Лимит по скорости — 60 писем в час.

Как найти SMTP сервер?

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

В зависимости от количества отправляемых сообщений, выбирается оптимальный SMTP сервер.

SMTP вашего

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

  • лимитируют количество отправленных сообщений за час/ день или по количеству получателей
  • блокируют стандартный (25)
  • вводят тарифные планы на рассылки

    Бесплатные с поддержкой SMTP

    Многие поддерживают отправку по SMTP протоколу, так что вы сможете использовать программу ePochta Mailer для отправки рассылок. Но, как и у , у данных серверов есть ограничения на количество отправляемых сообщений.
    Наиболее популярные сервисы:

    • mail.ru 1сообщение в минуту
    • yandex.ru 150 сообщений в день
    • meta.ua 200 сообщений в день
    • ukr.net 250 сообщений в день
    • rambler.ru 200 сообщений в час
    • gmail.com 100 сообщений в день

    Программы ePochta Studio и ePochta Mailer могут проводить рассылку через неограниченное количество , при этом отправка может происходить в порядке очереди: первое сообщение отправляется через сервер1, второе — через сервер2 Таким образом количество указанных вами серверов может неограничиваться, и программа будет производить отправку, пока не исчерпает лимит сервисов.

    SMTP вашего хостинга

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

    Коммерческие


    Если вы хотите обеспечить высокий уровень доставки сообщений, не помеченных, как «спам», но при этом не имеете определенных технических знаний, тогда коммерческие — идеальный вариант. От вас требуется только подсчитать нужное количество сообщений и выбрать тарифный план по оплате.

    Email — Связь с почтой посредством smtp

    Скидка 25% на все тарифы хостинга по промокоду STDCITF

    3.2.4. Протокол обмена почтой SMTP (Simple Mail Transfer Protocol)

    Протокол SMTP был разработан для обмена почтовыми сообщениями в сети Internet. SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25. Достигается это за счет концепции IPCE (Inter-Process Communication Environment). IPCE позволяет взаимодействовать процессам, поддерживающим SMTP, в интерактивном режиме, а не в режиме «STOP-GO».

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

    Рис. 3.15. Схема взаимодействия по протоколу SMTP

    Канал связи устанавливается непосредственно между отправителем и получателем сообщения. При таком взаимодействии почта достигает абонента в течении нескольких секунд после отправки.

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

    Наиболее распространенной дисциплиной является отправление почтового сообщения, которое начинается по команде MAIL, идентифицирующей отправителя:

    Следующей командой определяется адрес получателя:

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

    Команда DATA вводится без параметров и идентифицирует начало ввода почтового сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой в первой позиции. Согласно стандарту почтового сообщения RFC-822 отправитель передает заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол SMTP не накладывает каких-либо ограничений на информацию, которая заключена между командой DATA и «.» в первой позиции последней строки. Приведем пример обмена сообщениями при дисциплине отправки почты:

    Другой дисциплиной, определенной в протоколе SMTP, является перенаправление почтового сообщения (forwarding). Если получатель не найден и известно его местоположение, то сервер может выдать сообщение:

    Если сервер может сделать только предположение о дальнейшей рассылке, то ответ будет несколько иным:

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

    Используя команду EXPN, можно получить список местных пользователей:

    В список дисциплин, разрешенных протоколом SMTP, входит кроме отправки почты еще и прямая рассылка сообщений. В этом случае сообщение будет отправляться не в почтовый ящик, а непосредственно на терминал пользователя, если пользователь в данный момент находится за своим терминалом. Прямая рассылка осуществляется по команде SEND, которая имеет такой же синтаксис, как и команда MAIL. Кроме SEND прямую рассылку осуществляют SOML (Send or Mail) и SAML (Send and Mail).

    Для инициализации канала обмена почтой и его закрытия используются команды HELO и QUIT соответственно. Первой командой сеанса должна быть команда HELO.

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

    Если сообщение по какой-либо причине не может быть разослано, то получатель формирует сообщение о неразосланном сообщении:

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

    Кроме вышеперечисленных дисциплин, протокол позволяет отправителю и получателю меняться ролями друг с другом. Происходит это по команде TURN.

    Для отладки или проверки соединения по SMTP можно использовать telnet. Для этого вслед за адресом машины следует ввести номер порта:

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

    3.2.5. Интерфейс Eudora

    Интерфейс Eudora является одним из множества почтовых интерфейсов, ориентированных на работу с почтой Internet из системы MS-Windows. На примере этого интерфейса мы рассмотрим типичные проблемы, которые возникают у пользователей персональных компьютеров при подключении к почтовому сервису Internet, и пути их решения.

    Первой проблемой является тот факт, что компьютер выключается из сети на время отсутствия пользователя. Это значит, что в это время прием почтовых сообщений не производится. Следовательно, вся почта должна хранится на почтовом сервере и получаться пользователем по его запросу. При работе с Unix об этом заботится программа sendmail, в MS-Windows такой программы нет (точнее есть, но она не ориентирована на Internet). Поэтому обычно применяется следующая схема (рисунок 3.16):

    Рис. 3.16. Схема работы с почтовым сервером из-под MS-Windows и MS-DOS

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

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

    На рисунке 3.17 приведен экран Eudora, на котором представлено меню настройки и два почтовых ящика: принятых писем и отправленных писем.

    На этом рисунке в меню настроек хорошо виден POP Account — адрес пользователя на машине-сервере, SMTP-сервер и POP (Ph) сервер. Как видно из настроек, Eudora каждые 30 минут проверяет почтовый ящик пользователя и сообщает о получении новых писем. Кроме того, что Eudora позволяет читать просто письма в обычном почтовом формате Internet (RFC822), о котором пойдет речь в следующем параграфе, она распознает и новый формат, ориентированный на отображение мультимедийных почтовых сообщений MIME, который последнее время становится все более популярен в Internet.

    Рис. 3.17. Интерфейс Eudora для MS-Windows

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

    И последнее замечание относительно работы из под MS-Windows с почтой в Internet. Если пользователь пишет только по английски, то у него нет проблем с кодировкой и набором текста, но если он пишет по русски и получает такие же сообщения, то сразу же возникают проблемы. Дело в том, что большинство почтовых сетей для обмена данными между серверами используют кодировку KOI8. Эта кодировка отличается как от кодировки для MS-DOS, так и от кодировки MS-Windows. Поэтому, возвращаясь к иллюстрации с настройками интерфейса Eudora, хочется обратить внимание читателя на поля «Send Font» и «Printer Font». В этих полях указан шрифт «Arial-Relcom», который разложен по кодировке KOI8, и используется для отображения и печати почтовых сообщений. Для того, чтобы правильно набирать сообщения, следует к стандартным раскладкам клавиатуры в драйвере клавиатуры (cyrwin, например) добавить раскладку для KOI8.

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

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

    3.2.6. Системы почтовой рассылки (программа sendmail)

    Основным средством рассылки почты в Internet является программа sendmail. Она обеспечивает работу модульной системы рассылки, которая предназначена для получения и отправки корреспонденции, а также управления программами подготовки и просмотра почтовых сообщений. Sendmail позволяет организовать почтовую службу локальной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы. Send-mail может быть сконфигурирована для работы с различными почтовыми протоколами. Обычно это протоколы UUCP (Unix-Unix-CoPy) и SMTP (Simple Mail Transfer Protocol).

    Sendmail работает в стиле «отделения связи» обычной почтовой службы, которое принимает и пересылает почтовые сообщения. Sendmail может интерпретировать два типа почтовых адресов:

    • почтовые адреса SMTP;
    • почтовые адреса UUCP.

    Первые являются стандартными адресами Internet и фактически являются стандартом де-факто. Именно этот адрес обычно указан на визитных карточках.

    Sendmail можно настроить для поддержки:

    • списка адресов-синонимов;
    • списка адресов рассылки пользователя;
    • автоматической рассылки почты через шлюзы;
    • поддержки очередей сообщений для повторной рассылки почты в случае отказов при рассылке;
    • работы в качестве SMTP-сервера;
    • доступа к адресам машин через сервер доменных имен BIND;
    • для доступа к внешним серверам имен.

    3.2.6.1. Принцип работы программы sendmail

    Sendmail отправляет почту в два приема: сначала почтовые сообщения собираются в очереди, а затем отсылаются.

    Каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения.

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

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

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

    Sendmail может быть вызвана:

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

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

    • адреса отправителя и получателя преобразуются в формат сети-получателя почты;
    • если необходимо, то в заголовок сообщения добавляются строки, позволяющие получателю отвечать на принятое сообщение (например: FROM: );
    • почта передается одной из программ рассылки почты.

    На рисунке 3.18 представлена схема функционирования почтового сервера на базе программы sendmail.

    Рис. 3.18. Схема функционирования почтового сервера на базе программы Sendmail

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

    Первый этап рассылки — сбор сообщений. Sendmail получает почтовые сообщения из трех источников:

    • командной строки или стандартного ввода;
    • через SMTP-протокол (из сети);
    • из очереди сообщений.

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

    При получении сообщений по протоколу SMTP, sendmail используется как программа клиента и сервера протокола. Протокол определен в RFC-821 и является основным для рассылки почты в Internet. В этом случае sendmail запускается как демон, который «слушает» порт TCP и в случае получения сообщения устанавливает соединение с удаленным клиентом SMTP. Как правило, таким клиентом является другая программа sendmail.

    Программа подготовки почты на локальной машине также может использовать SMTP. Для этого sendmail открывает канал (pipe) межпроцессного обмена.

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

    Вторая стадия рассылки почты — рассылка сообщений.

    Как только одним из описанных выше способов sendmail получила сообщение, делается попытка его отправить по адресу. Для этого sendmail определяет три параметра: программу рассылки, узел сети и получателя. Эта процедура производится по правилам, которые содержатся в файле конфигурации. Sendmail сохраняет одну копию тела сообщения во временном файле, а заголовок загружает в оперативную память. Для каждого сообщения программа доставки (рассылки) сообщений вызывается отдельно. Если сообщение должно быть доставлено на разные машины, то для каждой из машин также вызывается своя программа доставки. Некоторые программы могут обслуживать сразу несколько абонентов одной машины, если это невозможно, то для каждого абонента вызывается также своя программа доставки. Рассматривают два типа рассылки: на удаленную машину и местную рассылку.

    Рассылка на удаленную машину. Для вызова программы рассылки sendmail открывает pipe и запускает программу рассылки, командная строка которой находится в файле конфигурации. Sendmail записывает заголовок и тело сообщения в pipe. Если программа рассылки не использует протокол SMTP, то адрес получателя передается через pipe. Если используется SMTP, то открывается двунаправленный канал для интерактивного взаимодействия с удаленным сервером SMTP. Если в качестве транспортного протокола используется TCP, то sendmail не запускает внешнюю программу рассылки, а сама инициирует TCP-соединение с удаленным сервером SMTP.

    Доставка местной почты. Если sendmail определяет, что адреса доставки местные, то происходит обращение к файлу адресных синонимов и производится преобразование адресов (расширение). Файл адресных синонимов можно использовать для перенаправления почты в файлы или для обработки местными программами. Пользователь может иметь и свой собственный файл адресных синонимов для управления рассылкой персональной почты. После преобразования адресов почта отправляется программе местной рассылки (например rmail).

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

    Местные адреса имеют вид:

    Местный адрес — это адрес, который распознается как адрес на машине, с которой осуществляется отправка почты.

    Адреса UUCP имеют вид:


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

    Адреса SMTP — это адреса, описанные в стандарте RFC-822 или стандартные адреса Internet. Эти адреса имеют вид:

    Почта с адресами SMTP рассылается по протоколу SMTP.

    Если в системе для адресации используется BIND-сервер, то sendmail может определять адреса получателей, используя сервис BIND. Если BIND не используется, то sendmail сама определяет адреса.

    При рассылке почты можно использовать и смешанную адресацию:

    Подводя итог под обсуждением принципов работы sendmail следует специально подчеркнуть тот факт, что почта реально рассылается двумя принципиально разными способами. При использовании протокола UUCP почта рассылается по принципу «stop-go», т.е. сообщения передаются от машины к машине по указанному в адресе пути. Следует ясно представлять, если почта ушла с машины отправителя, то это не означает, что она поступит получателю. Промежуточная машина может вернуть почту назад, если не сможет разослать. Электронная почта действительно работает как система обычной почты, физически перемещая и храня сообщения на промежуточных почтовых станциях. При работе по протоколу SMTP почта реально отправляется только тогда, когда установлено интерактивное соединение с программой-сервером на машине-получателе почты. При этом происходит обмен командами между клиентом и сервером протокола SMTP в режиме on-line. При смешанной адресации доставка почты происходит по смешанному сценарию. Как шла доставка и как маршрутизировалось сообщение можно определить из заголовка сообщения, которое вы получили.

    3.2.7. Настройка программы sendmail

    Настройка программы sendmail происходит при помощи файла /etc/sendmail/conf. Этот файл можно разбить на несколько частей:

    • Описание особенностей данной машины (local information) — в данной секции описываются такие параметры, как имя данной машины, имя UUCP и т.п.
    • Описание макроопределений sendmail, отвечающих за работу в локальной сети, например имя домена и «официальное имя» машины.
    • Описание классов, т.е. групп имен, которые используются программой для рассылки почты. Например, для рассылки в другие почтовые службы.
    • Номер версии файла конфигурации. Данная переменная должна изменяться каждый раз как только в файл конфигурации вносятся какие-либо изменения.
    • Внутренние макроопределения sendmail. В данном разделе присваиваются значения переменным, которые sendmail использует при взаимодействии с другими транспортными агентами.
    • Опции команды sendmail. Опции определяют режимы работы программы. Опции можно задавать в виде параметров командной строки, а можно в виде описаний в файле настройки.
    • Определение порядка сообщений программы sendmail (Precedence). Обычно эта секция не модифицируется администратором.
    • Доверенные пользователи. В данной секции описываются пользователи, которым разрешено переписывать адреса отправителей, т.е. выступать не под тем адресом, который за ними закреплен.
    • Описание формата заголовка почтового сообщения. В данной секции определяются поля и их формат, которые отображаются в заголовке. Многие поля заголовка sendmail генерирует на основе информации из конверта почтового сообщения.
    • Правила преобразования адресов. Это самая большая часть файла конфигурации программы sendmail. Преобразование адресов необходимо для принятия программой решений о пути рассылки почтовых сообщений, т.к. это решение принимается на основе полученного в результате преобразований почтового адреса.
    • Описание программ рассылки. В данной секции описываются имена программ рассылки, пути и параметры командной строки этих программ. Обычно это программа местной рассылки, рассылка по UUCP, рассылка по SMTP, рассылка на выполнение.
    • Общий набор правил преобразования адресов, который не меняется от машины к машине и от конфигурации к конфигурации (Rule Set 0).
    • Машино-зависимая часть общего правила преобразования адресов. В данной секции содержание определяется способом рассылки почты. Например, данная секция при рассылке по SMTP будет отличаться от случая рассылки по UUCP.

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

    В целом все описанные выше секции решают три основных задачи:

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

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

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

    Команда Синтаксис Назначение
    Define Macro Dxvalue Установить значение x
    Define Class Ссword1 word2 . Установить значение класса c
    Define Class Fcfile загрузить значение класса из файла
    Set Option Oovalue Установить значение опции o
    Trusted Users Tuser1 user2 . Определить доверенных пользователей
    Set Precedence Pname=number Для номера ошибки number установить имя name
    Define Mailer Mname,[field=value] Определить программу рассылки почты.
    Define Header H[?mflag?]name:format Определить формат поля заголовка
    Set Rulset Sn Начать определение набора правил преобразования адресов
    Define Rule Rlhs rhs comment Определить правило преобразования адреса.

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

    Рис. 3.19. Структура команды файла настроек sendmail

    Теперь разберем более подробно некоторые команды и секции файла настроек sendmail. Лучше всего это сделать на основе реального файла. Начнем с секции описания локальных параметров:

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

    Следующая секция — определение макросов sendmail:

    В данной секции описаны сообщения, которые выдает sendmail при взаимодействии с другими транспортными агентами. Как видно из этого описания, определение макроса это не только присваивание значения, но и выполнение определенных действий. Наиболее интересное предложение из всех — предложение определяющее значение макроса q:

    Здесь описана условная подстановка значения. Все предложение можно описать следующей фразой:

    То же самое можно записать и по другому:

    В данном случае $? соответствует оператору if, $| — else, а $. — конец условного оператора.

    Следующая секция — это определение опций:

    В данном случае приведен только фрагмент этой секции. Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт, что по почте можно пересылать 7-битовую информацию. Согласно RFC-822 информация должна быть 7-битовая, но для передачи кириллицы это значит использовать кодирование, что абсолютно не приемлемо. Поэтому данный параметр должен быть закомментирован. В системах, где используется сервер доменных имен, опция I должна быть установлена, чтобы не было ошибок при идентификации доменов. Последний параметр не является принципиальным, но для более понятного представления его следует установить. Если почтовый клиент не поддерживает MIME, то данный параметр следует закомментировать.

    Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей:

    За этими двумя секциями следует секция описания полей заголовка почтового сообщения, который генерируется программой sendmail:

    Формат команд данной секции определяет, какие поля включаются в заголовок, а какие не включаются. Данная секция тесно связана с секцией определения программ рассылки почты. Если после «H» нет знака вопроса, то поле включается в заголовок сообщения для любой программы рассылки, если после «H» символ «?» присутствует, то в строке аргументов программы рассылки данный флаг должен быть определен для того, чтобы данное поле было включено в заголовок. Как следует из приведенного выше описания, всегда включаются только поля Recieved и Subject. Все перечисленные поля не являются обязательными полями заголовка.

    Следующая секция — правила преобразования адресов. Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает.

    Рис. 3.20. Порядок обработки адресов

    Данная диаграмма представляет типовой набор блоков правил преобразования адресов. Как видно из рисунка, все адреса попадают на правила канонизации адресов (Rule Set 3). Если адреса достаточны для рассылки, то выполняется набор правил 0, в противном случае адреса анализируются на наличие в них доменной информации и, если данная информация отсутствует, то в блоке D она добавляется к адресу. Набор 1 применяется ко всем адресам отправителей, набор 2 применяется ко всем адресам получателей. Набор правил 4 — это выходной набор, который предназначен для преобразования адресов в формат программ рассылки. Ниже приведен фрагмент правил набора 3:

    Не будем подробно разбирать все записи секции преобразования адресов, их очень много, поясним только сам механизм этого преобразования. Механизм основывается на применении так называемых token’ов и pattern’ов, образованных этими token’ами.

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

    Pattern Значение
    $* пусто или любое количество token’ов
    $+ один или более token’ов
    $- точно один token
    $=x любое количество token’ов одного класса x
    $

    x

    любое количество token’ов, не принадлежащих классу x
    $x все token’ы макро x
    Символ Значение
    $n Token номер n
    $[name$] Каноническое имя
    $>n Вызвать набор правил n
    $@ Завершить набор правил
    $: Завершить правило
    $#mailer$@host$:user образец вызова программы рассылки

    Приведем пример преобразования:

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

    Речь идет о преобразовании адресов сообщений отправленных в BITNET.

    Ниже приведен фрагмент правил набора 0, в котором определяется рассылка почты программами рассылки:

    За секцией преобразования адресов следует секция определения программ рассылки почты. В ней определяется локальная программа рассылки (mail), программа рассылки для выполнения (sh), и программа рассылки по SMTP.

    Затем идут правила определения локального преобразования адресов для конкретных программ рассылки, в частности набор правил S11.

    В секции программ рассылки мы в нашем примере не указали еще одну важную возможность — рассылку по протоколу UUCP:

    Естественно, что правила преобразования адресов S13 и R23 должны быть описаны в файле настроек sendmail.

    3.2.7.1. Тестирование Sendmail и способы запуска

    При работе с программой Sendmail возникает ряд ситуаций, когда необходимо протестировать работу системы рассылки электронной почты. Чаще всего это связано с тем, что программа неаккуратно работает с сервисом доменных имен. Дело в том, что определение макросов w и j связано скорее с функционированием системы в среде NIS, а не BIND, что влечет за собой определенные проблемы при идентификации программы при работе по SMTP, например.

    Собственно проблемы возникают между sendmail и resolver. Для их решения следует в файле конфигурации resolver не указывать имя домена, а в файле настроек sendmail сделать это явно.

    Для проверки работы можно запустить sendmail с ключом -v:

    Как видно из этого примера, система выдает полную трассу взаимодействия с удаленным хостом по протоколу SMTP.

    Стандартный режим запуска sendmail — это запуск в виде процесса демона в момент начальной загрузки системы:

    Однако, надо всегда помнить, что перед запуском в режиме демона следует создать файл ali-ases:

    Проверка связи по протоколу SMTP на серверах Exchange с помощью Telnet Use Telnet to test SMTP communication on Exchange servers

    С помощью Telnet можно тестировать обмен данными по протоколу SMTP между серверами обмена сообщениями. You can use Telnet to test Simple Mail Transfer Protocol (SMTP) communication between messaging servers. SMTP — это протокол, который используется для отправки сообщений электронной почты с одного сервера обмена сообщениями на другой. SMTP is the protocol that’s used to send email messages from one messaging server to another. Использование Telnet может пригодиться, если у вас возникают проблемы с отправкой и получением сообщений, так как вы можете вручную отправить команды SMTP на сервер обмена сообщениями. Using Telnet can be helpful if you’re having trouble sending or receiving messages because you can manually send SMTP commands to a messaging server. В случае возврата сервер ответит ответами, которые будут возвращаться в типичном подключении. In return, the server will reply with responses that would be returned in a typical connection. Эти результаты могут помочь выяснить, почему вы не можете отправлять и получать сообщения. These results can sometimes help you to figure out why you can’t send or receive messages.

    Вы можете использовать Telnet для проверки связи по протоколу SMTP, чтобы: You can use Telnet to test SMTP communication to:

    Протестируйте потоки обработки почты из Интернета в организацию Exchange. Test mail flow from the Internet into your Exchange organization.

    Протестируйте процесс обработки почты из Exchange на другом сервере обмена сообщениями в Интернете. Test mail flow from your Exchange to another messaging server on the Internet.

    Знаете ли вы, что вместо использования Telnet для проверки подключения SMTP вы можете использовать анализатор удаленного подключения Майкрософт на сайте https://testconnectivity.microsoft.com/? Did you know that, instead of using Telnet to test SMTP connectivity, you can use the Microsoft Remote Connectivity Analyzer at https://testconnectivity.microsoft.com/? С помощью анализатора удаленного подключения вы можете выбрать требуемый тест подключения, в данном случае входящей электронной почты SMTPи следуйте инструкциям. With the Remote Connectivity Analyzer, you can choose the connectivity test you want to do, in this case Inbound SMTP Email, and follow the instructions shown. В этом разделе представлены сведения, которые необходимо ввести, выполнить тест для вас и предоставить результаты. It’ll step you through the information you need to enter, run the test for you, and then give you the results. Повторите попытку. Give it a try!

    Что нужно знать перед началом работы What do you need to know before you begin?

    Предполагаемое время для завершения: 15 минут. Estimated time to complete: 15 minutes

    Разрешения Exchange не применяются к процедурам, описанным в этом разделе. Exchange permissions don’t apply to the procedures in this topic. Эти процедуры выполняются в операционной системе сервера Exchange или клиентского компьютера. These procedures are performed in the operating system of the Exchange server or a client computer.

    В этом разделе показано, как использовать клиент Telnet, входящий в состав Windows. This topic shows you how to use Telnet Client, which is included with Windows. Сторонние Клиенты Telnet могут иметь синтаксис, отличный от того, что показано в этом разделе. Third-party Telnet clients might require syntax that’s different from what’s shown in this topic.

    Действия, описанные в этом разделе, показывают, как подключаться к серверу, подключенному к Интернету и поддерживающему анонимные подключения с помощью TCP-порта 25. The steps in this topic show you how to connect to an Internet-facing server that allows anonymous connections using TCP port 25. Если вы пытаетесь подключиться к этому серверу из Интернета, вам необходимо убедиться, что сервер Exchange доступен из Интернета через TCP-порт 25. If you’re trying to connect to this server from the Internet, you need to make sure your Exchange server is reachable from the Internet on TCP port 25. Аналогично, если вы пытаетесь получить доступ к серверу в Интернете с сервера Exchange Server, необходимо убедиться, что сервер Exchange Server может открыть подключение к Интернету через TCP-порт 25. Similarly, if you’re trying to reach a server on the Internet from your Exchange server, you need to make sure your Exchange server can open a connect to the Internet on TCP port 25.

    Вы можете заметить некоторые соединители получения, использующие TCP-порт 2525. You might notice some Receive connectors that use TCP port 2525. Это внутренние соединители получения, которые не используются для приема анонимных SMTP-подключений. These are internal Receive connectors and aren’t used to accept anonymous SMTP connections.

    При тестировании подключения на удаленном сервере обмена сообщениями необходимо выполнить действия, описанные в этом разделе, на сервере Exchange. If you’re testing a connection on a remote messaging server, you should run the steps in this topic on your Exchange server. Серверы удаленной системы обмена сообщениями часто настраивают, чтобы IP-адрес, с которого поступило подключение SMTP, совпадал с доменом в адресе электронной почты отправителя. Remote messaging servers are often set up to make sure the IP address where the SMTP connection is coming from matches the domain in the sender’s email address.

    Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange. For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.

    Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Server, Exchange Online или Exchange Online Protection. Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.

    Шаг 1: Установка клиента Telnet на компьютере Step 1: Install the Telnet Client on your computer

    В большинстве версий Windows вам потребуется установить клиент Telnet, прежде чем его можно будет использовать. On most versions of Windows, you’ll need to install the Telnet client before you can use it. Чтобы установить его, ознакомьтесь со статьей Установка клиента Telnet. To install it, see Install Telnet Client.

    Шаг 2: Поиск полного доменного имени или IP-адреса конечного SMTP-сервера Step 2: Find the FQDN or IP address of the destination SMTP server

    Для подключения к SMTP-серверу с помощью Telnet через порт 25 необходимо использовать полное доменное имя (например, mail.contoso.com) или IP-адрес SMTP-сервера. To connect to an SMTP server by using Telnet on port 25, you need to use the fully-qualified domain name (FQDN) (for example, mail.contoso.com) or the IP address of the SMTP server. Если вы не знаете полное доменное имя или IP-адрес, вы можете использовать средство командной строки Nslookup, чтобы найти запись MX для конечного домена. If you don’t know the FQDN or IP address, you can use the Nslookup command-line tool to find the MX record for the destination domain.

    Политики сети могут препятствовать использованию средства Nslookup для запроса общедоступных DNS-серверов в Интернете. Network policies might prevent you from using the Nslookup tool to query public DNS servers on the Internet. В качестве альтернативы можно использовать один из доступных в Интернете веб-сайтов поиска DNS или записи MX. As an alternative, you can use one of the freely-available DNS lookup or MX record lookup web sites on the Internet.

    В командной строки введите nslookup, а затем нажмите клавишу ВВОД. At a command prompt, type nslookup, and then press Enter. Эта команда открывает сеанс Nslookup. This command opens the Nslookup session.

    Введите set Type = MX и нажмите клавишу ВВОД. Type set type=mx, and then press Enter.


    Введите имя домена, для которого требуется найти запись MX. Type the name of the domain for which you want to find the MX record. Например, чтобы найти запись MX для домена fabrikam.com, введите fabrikam.com., а затем нажмите клавишу ВВОД. For example, to find the MX record for the fabrikam.com domain, type fabrikam.com., and then press Enter.

    При использовании завершающей точки (. When you use a trailing period ( . ) вы предотвратите непреднамеренное Добавление DNS-суффиксов по умолчанию в доменное имя. ), you prevent any default DNS suffixes from being unintentionally added to the domain name.

    Выходные данные команды выглядят так: The output of the command looks like this:

    1. Когда вы будете готовы завершить сеанс nslookup, введите команду Exit и нажмите клавишу ВВОД. When you’re ready to end the Nslookup session, type exit, and then press Enter.

    Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP. Step 3: Use Telnet on Port 25 to test SMTP communication

    В этом примере мы будем использовать следующие значения. In this example, we’re going to use the following values. При выполнении команд на сервере замените эти значения на имена SMTP-сервера организации, домена и т. д. When you run the commands on your server, replace these values with ones for your organization’s SMTP server, domain, etc.

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

    Исходный домен: contoso.com Source domain: contoso.com

    Адрес электронной почты отправителя: Chris@contoso.com Sender’s e-mail address: chris@contoso.com

    Адрес получателя электронной почты: Kate@fabrikam.com Recipient’s e-mail address: kate@fabrikam.com

    Тема сообщения: тест из Contoso Message subject: Test from Contoso

    Текст сообщения: это тестовое сообщение Message body: This is a test message

    Команды в клиенте Telnet не учитывают регистр. The commands in the Telnet Client aren’t case-sensitive. Команды SMTP в этом примере заменяются прописными для ясности. The SMTP command verbs in this example are capitalized for clarity. После подключения к SMTP-серверу назначения невозможно использовать клавишу BACKSPACE в сеансе Telnet. You can’t use the backspace key in the Telnet session after you connect to the destination SMTP server. Если при вводе команды SMTP допущена ошибка, необходимо нажать клавишу ВВОД, а затем ввести команду еще раз. If you make a mistake as you type an SMTP command, you need to press Enter, and then type the command again. Нераспознанные команды SMTP или синтаксические ошибки приводят к появлению сообщения об ошибке, которое выглядит следующим образом: 500 5.3.3 Unrecognized command Unrecognized SMTP commands or syntax errors result in an error message that looks like this: 500 5.3.3 Unrecognized command

    Откройте окно командной строки, введите telnet , а затем нажмите клавишу ВВОД. Open a Command Prompt window, type telnet , and then press Enter.

    Эта команда открывает сеанс Telnet. This command opens the Telnet session.

    Введите set localecho команду и нажмите клавишу ВВОД. Type set localecho , and then press Enter.

    Эта **** Необязательная команда позволяет просматривать символы при их вводе и может потребоваться для некоторых SMTP-серверов. This optional command lets you view the characters as you type them, and it might be required for some SMTP servers.

    Введите set logfile команду и нажмите клавишу ВВОД. Type set logfile , and then press Enter.

    Эта **** Необязательная команда включает ведение журнала и указывает файл журнала для сеанса Telnet. This optional command enables logging and specifies the log file for the Telnet session. Если указать только имя файла, файл журнала будет находиться в текущей папке. If you only specify a file name, the log file is located in the current folder. Если указан путь и имя файла, путь должен находиться на локальном компьютере, а путь и имя файла в формате Windows DOS 8,3 (сокращенное имя без пробелов). If you specify a path and file name, the path needs to be on the local computer, and you might need to enter the path and file name in the Windows DOS 8.3 format (short name with no spaces). Путь должен существовать, но файл журнала создается автоматически. The path needs to exist, but the log file is created automatically.

    Введите OPEN mail1.fabrikam.com 25 команду и нажмите клавишу ВВОД. Type OPEN mail1.fabrikam.com 25 , and then press Enter.

    Введите EHLO contoso.com команду и нажмите клавишу ВВОД. Type EHLO contoso.com , and then press Enter.

    Введите MAIL FROM: команду и нажмите клавишу ВВОД. Type MAIL FROM: , and then press Enter.

    Введите RCPT TO: NOTIFY=success,failure команду и нажмите клавишу ВВОД. Type RCPT TO: NOTIFY=success,failure , and then press Enter.

    Необязательная команда NOTIFY указывает конкретные сообщения о доставке (сообщения о недоставке, отчеты о недоставке или отчеты о недоставке), которые необходимо предоставить SMTP. The optional NOTIFY command specifies the particular delivery status notification (DSN) messages (also known as bounce messages, nondelivery reports, or NDRs) that the SMTP is required to provide. В этом примере запрашивается сообщение DSN для успешной или неудачной доставки сообщения. In this example, you’re requesting a DSN message for successful or failed message delivery.

    Введите DATA команду и нажмите клавишу ВВОД. Type DATA , and then press Enter.

    Введите Subject: Test from Contoso команду и нажмите клавишу ВВОД. Type Subject: Test from Contoso , and then press Enter.

    Еще раз нажмите клавишу ВВОД. Press Enter again.

    Между полем Subject: и текстом сообщения необходимо ввести пустую строку. A blank line is needed between the Subject: field and the message body.

    Введите This is a test message команду и нажмите клавишу ВВОД. Type This is a test message , and then press Enter.

    Введите точку (. Type a period ( . ) и нажмите клавишу ВВОД. ), and then press Enter.

    Чтобы отключиться от сервера SMTP, введите QUIT команду и нажмите клавишу ВВОД. To disconnect from the SMTP server, type QUIT , and then press Enter.

    Чтобы закрыть сеанс Telnet, введите команду quit и нажмите клавишу ВВОД. To close the Telnet session, type quit , and then press Enter.

    Вот как выглядит успешный сеанс, выполнив приведенные выше действия. Here’s what a successful session using the steps above looks like:

    Шаг 4: успешные и появляющиеся сообщения об ошибках в сеансе Telnet Step 4: Success and error messages in the Telnet Session

    В этом разделе представлены сведения об успешных и неудачных откликах для команд, использованных в предыдущем примере. This section provides information about the success and failure responses to the commands that were used in the previous example.

    Коды откликов SMTP из трех цифр, определенные в стандарте RFC 5321, одинаковы для всех SMTP-серверов обмена сообщениями, но текстовые описания в ответах могут слегка отличаться. The three-digit SMTP response codes that are defined in RFC 5321 are the same for all SMTP messaging servers, but the text descriptions in the responses might be slightly different.

    Коды ответа SMTP SMTP reply codes

    SMTP-серверы отвечают на команды с различными числовыми кодовыми ответами в формате x. y. z, где: SMTP servers respond to commands with a variety of numerical reply codes in the format of x.y.z where:

    X указывает, является ли команда хорошей, плохой или неполной. X indicates whether the command was good, bad, or incomplete.

    Y указывает тип отправленного отклика. Y indicates the kind of response that was sent.

    Z предоставляет дополнительные сведения о команде Z provides additional information about the command

    Когда сервер, который открыл подключение, получает ответ, он может определить, принял ли удаленный сервер команду и готов к следующему, или если произошла ошибка. When a response is received by the server that opened the connection, it can tell whether the remote server accepted the command and is ready for the next one, or if an error occurred.

    Первая цифра (X) особенно важна, так как она указывает на успешность или неудачу отправки команды. The first digit (X) is particularly important to understand because it indicates the success or failure of the command that was sent. Ниже приведены возможные значения и их значения. Here are its possible values, and their meanings.

    Код ответа Reply code Смысл Meaning
    2. y. z 2.y.z Отправленная команда успешно выполнена на удаленном сервере. The command that was sent was successfully completed on the remote server. Удаленный сервер готов к следующей команде. The remote server is ready for the next command.
    3. y. z 3.y.z Команда была принята, но удаленному серверу требуются дополнительные сведения, прежде чем операция может быть завершена. The command was accepted but the remote server needs more information before the operation can be completed. Отправляющий сервер должен отправить новую команду с необходимыми сведениями. The sending server needs to send a new command with the needed information.
    4. y. z 4.y.z Команда не была принята удаленным сервером по причине, которая может быть временной. The command wasn’t accepted by the remote server for a reason that might be temporary. Отправляющий сервер должен попытаться подключиться позже, чтобы проверить, может ли удаленный сервер успешно принять команду. The sending server should try to connect again later to see if the remote server can successfully accept the command. Отправляющий сервер повторит попытку подключения, пока не завершится успешное соединение (обозначено кодом 2. y. z) или завершается неудачно (код 5. y. z). The sending server will continue to retry the connection until either a successful connection is completed (indicated by a 2.y.z code) or fails permanently (indicated by a 5.y.z code).
    Пример временной ошибки — нехватку места на удаленном сервере. An example of a temporary error is low storage space on the remote server. После того как освободится свободное место, удаленный сервер сможет успешно принять команду. Once more space is made available, the remote server should be able to successfully accept the command.
    5. y. z 5.y.z Команда не была принята удаленным сервером по причине, которая не может быть восстановлена. The command wasn’t accepted by the remote server for a reason that is isn’t recoverable. Отправляющий сервер не будет повторять подключение и отправит отчет о недоставке пользователю, который отправил сообщение. The sending server won’t retry the connection and will send a non-delivery report back to the user who sent the message.
    Примером неисправимой ошибки является сообщение, которое отправляется на несуществующий адрес электронной почты. An example of an unrecoverable error is a message that’s sent to an email address that doesn’t exist.

    Приведенная выше таблица основана на информации, предоставленной в RFC 5321 (Simple Mail Transfer Protocol), в разделе 4.2.1. The table above is based on information provided by RFC 5321 (Simple Mail Transfer Protocol), section 4.2.1. В этот раздел включены дополнительные сведения, в том числе описания второй (Y) и третьей (Z) цифр (Z) кодов ответов SMTP, а также в разделах 4.2.2 и 4.2.3. Additional information, including descriptions of the second (Y) and third (Z) digits of SMTP reply codes is included in this section, and in sections 4.2.2 and 4.2.3.

    Команда «Открыть» OPEN command

    Успешный ответ: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Successful response: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at

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

    Возможные причины сбоя Possible reasons for failure

    SMTP-служба назначения недоступна. The destination SMTP service is unavailable.

    Ограничения на конечный брандмауэр. Restrictions on the destination firewall.

    Ограничения для исходного брандмауэра. Restrictions on the source firewall.

    Неправильное полное доменное имя или IP-адрес SMTP-сервера назначения. Incorrect FQDN or IP address for the destination SMTP server.

    Неверный номер порта. Incorrect port number.

    Команда EHLO EHLO command

    Успешный ответ: 250 mail1.fabrikam.com Hello [ ] Successful response: 250 mail1.fabrikam.com Hello [ ]

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

    Возможные причины сбоя Possible reasons for failure

    Недопустимые символы в имени домена. Invalid characters in the domain name.

    Ограничения подключения на SMTP-сервере назначения. Connection restrictions on the destination SMTP server.

    EHLO — это команда расширенного протокола передачи сообщений (ESMTP), определенная в RFC 5321. EHLO is the Extended Simple Message Transfer Protocol (ESMTP) verb that’s defined in RFC 5321. ESMTP-серверы могут объявлять о своих возможностях в процессе начального подключения. ESMTP servers can advertise their capabilities during the initial connection. К этим возможностям относятся максимальный допустимый размер сообщения и поддерживаемые методы проверки подлинности. These capabilities include the maximum accepted message size and supported authentication methods. HELO — это более старая команда SMTP, определенная в RFC 821. HELO is the older SMTP verb that is defined in RFC 821. Большинство SMTP-серверов обмена сообщениями поддерживают ESMTP и EHLO. Most SMTP messaging servers support ESMTP and EHLO. Если сервер, не являющийся сервером Exchange, к которому вы пытаетесь подключиться, не поддерживает EHLO, вы можете использовать HELO. If the non-Exchange server that you’re trying to connect to doesn’t support EHLO, you can use HELO instead.

    Команда «почта» MAIL FROM command

    Успешный ответ: 250 2.1.0 Sender OK Successful response: 250 2.1.0 Sender OK

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

    Возможные причины сбоя: синтаксическая ошибка в адресе электронной почты отправителя. Possible reasons for failure: A syntax error in the sender’s e-mail address.

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

    Возможные причины сбоя: целевой сервер не принимает анонимные отправки сообщений. Possible reasons for failure: The destination server doesn’t accept anonymous message submissions. Эта ошибка возникает при попытке использовать Telnet для передачи сообщения непосредственно на сервер почтовых ящиков, у которого нет соединителя получения, настроенного на прием анонимных подключений. You receive this error if you try to use Telnet to submit a message directly to a Mailbox server that doesn’t have a Receive connector that’s configured to accept anonymous connections.

    Команда «о доставке» RCPT TO command

    Успешный ответ: 250 2.1.5 Recipient OK Successful response: 250 2.1.5 Recipient OK

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

    Возможные причины сбоя: указанный получатель не существует. Possible reasons for failure: The specified recipient doesn’t exist.

    Цукерберг рекомендует:  Тест по HTML&CSS. Сложный уровень
    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих