Архитектура SMTP-коннектора
Рисунок 3.1. Архитектура SMTP-коннектора
Все компоненты, необходимые для функционирования коннектора, устанавливаются в процессе инсталляции сервера. Создание и начальное конфигурирование коннектора выполняются из административной консоли при помощи программы-мастера, проверяющей наличие на компьютере стека протокола TCP/IP и правильности его настроек. По ходу установки администратор должен ответить на ряд вопросов, касающихся того, на каком сервере в пределах площадки будет коннектор установлен, будет ли почта отправляться через удаленное соединение и т.п., позволяющих выполнить ускоренную настройку коннектора, достаточную для большинства случаев.
По завершению установки в контейнере соединений (Connections) текущей площадки создается объект Internet Mail Service (<Имя сервера>), представляющий настройки и некоторые данные о текущем состоянии коннектора SMTP на соответствующем сервере. Дальнейшее управление конфигурацией производится путем модификации атрибутов указанного объекта. В окне свойств коннектора атрибуты сгруппированы по категориям, представленным следующими закладками:
- настройки почты (Internet Mail), позволяет выполнять настройки следующих параметров:
- почтовый ящик администратора (Administrator's Mailbox), задает имя пользователя из глобального списка адресов, получающего уведомления об ошибках, возникающих при работе коннектора. Кроме того, почтовые сообщения, направленные на имя postmaster@<имя_сервера>, также доставляются данному пользователю. Существует возможность указать, доставлять ли уведомления о всех типах ошибок или только о некоторых;
- преобразование формата содержимого почтовых сообщений (Message Content Information), позволяет в зависимости от имени почтового домена адресата настроить следующие параметры:
- отправка вложений (Send attachments Using), позволяет задавать формат сообщения и вложений. Поддерживаются MIME и UUENCODE. При использовании формата MIME текст сообщения может быть преобразован либо в HTML, либо в плоский текст.
Кроме того, можно указать коннектору, включать в тело сообщения оба варианта представления. Для UUENCODE можно настроить передачу вложений с использованием формата Macintosh (Binhex); - взаимодействие (Interoperability), позволяет назначить, в каких случаях используется специальный вид вложения MSTNEF, представляющий собой исходное сообщение во внутреннем формате Exchange, содержащее весь набор исходных атрибутов и форматирования. Возможные варианты: всегда, никогда и если запрошено пользователем. Кроме того, здесь же указывается, запрещать или разрешать следующие действия для писем, проходящих через SMTP-коннектор:
- автоматический ответ в режиме "вне офиса";
- автоматический ответ на основе правил обработки корреспонденции, заданных пользователем;
- указание отображаемых имен на конвертах исходящих сообщений; - трансляция кодовых таблиц (Character Set Translation), задает названия кодовых таблиц, используемых по умолчанию для входящих и исходящих сообщений. Кодовые таблицы могут задаваться отдельно для MIME и UUENCODE;
- использовать моноширинный шрифт (Use fixed-font), задает использование по умолчанию моноширинного шрифта для отображения входящих писем;
Дополнительно на этой закладке отображается тип адресов (Address Type), используемых коннектором при указании на конвертах сообщений (например, X.400). Тип адреса задается в настройках коннектора в регистре Windows NT. Смена типа может быть полезна при использовании коннектора исключительно для обслуживания внутренних нужд организации и повсеместном использовании серверов Exchange; - отправка вложений (Send attachments Using), позволяет задавать формат сообщения и вложений. Поддерживаются MIME и UUENCODE. При использовании формата MIME текст сообщения может быть преобразован либо в HTML, либо в плоский текст.
- ведение журналов (Diagnostics Logging), позволяет устанавливать уровень подробности протоколирования событий, происходящих на коннекторе:
- запуск и останов коннектора (Initialization/Termination);
- поиск и замещение адресов (Addressing);
- помещение в очередь и удаление сообщений из очереди (Message Transfer);
- преобразование форматов (Content Conversion);
- внутренние события (Internal Processing);
- протоколирование взаимодействия с внешними системами (SMTP Protocol Log);
- архивация проходящих через коннектор сообщений (Message Archival).
Как уже отмечалось, события протоколируются в системном журнале событий. Результаты двух последних установок доступны для анализа в виде текстовых файлов;
- дополнительно (Advanced), позволяет устанавливать следующие параметры, регулирующие взаимодействие MTA с SMTP-коннектором:
- максимальное число не обработанных сообщений в очереди (Unread Limit), после превышения заданного числа, MTA перестает передавать коннектору сообщения для отправки;
- время ожидания (Back-off interval), задает временной интервал ожидания, по истечении которого MTA повторяет попытку передать сообщение коннектору SMTP;
- предельное время нахождения в очереди (Max unread time), по истечении указанного времени MTA возвращает сообщение отправителю с пометкой о невозможности доставки;
- максимальные времена передачи (Maximum Transfer Times), задают предельные значения для времени отправки сообщений различного уровня важности;
- предельный размер очереди (Message Transfer Quota), после превышения указанного предела, MTA прекращает передачу сообщений коннектору;
- ограничения на доставку (Delivery Restriction), позволяет ограничить круг лиц, имеющих право отправлять сообщения через данный коннектор. Существует возможность использовать либо разрешающий список, либо запрещающий;
- удаленный доступ (Dial-Up Connections), позволяет использовать службу удаленного доступа (RAS) для отправки и получения SMTP-почты. Служба RAS должна быть установлена на том же сервере, что и использующий ее коннектор, и в системной телефонной книге должны быть созданы все необходимые записи. Для каждой из записей, помеченной как используемая коннектором, назначается расписание установления соединения и указывается имя команды операционной системы, инициирующей доставку почты со стороны внешней системы коннектору SMTP. Существует возможность установить отдельное расписание работы по выходным. Дополнительно могут указываться параметры аутентификации при установлении соединения к удаленному компьютеру. При подключении к серверам удаленного доступа, не поддерживающим аутентификацию RAS, следует использовать сценарии входа;
- соединения (Connections), позволяет выполнять настройки для следующих категорий параметров:
- режим передачи (Transfer Mode), определяет, в каком режиме функционирует коннектор и предельные показатели по числу одновременных соединений и обрабатываемых за сеанс сообщений. Возможные режимы: прием и передача, только прием, только передача и ни прием, ни передача. Последний режим обычно используется в том случае, когда скорость, с которой сообщения поступают в очереди коннектора, превышает скорость их обработки;
- доставка сообщений (Message Delivery), позволяет достаточно гибко настроить способ доставки исходящих сообщений внешним SMTP-серверам. Возможные варианты:
- использовать DNS, применяется в том случае, когда выполняется динамическая маршрутизация сообщений путем поиска почтовых серверов для домена получателя в службе имен DNS. Компьютер, на котором расположен коннектор, должен иметь либо непосредственное соединение с Internet, либо использовать одно из разрешенных соединений удаленного доступа;
- доставлять все сообщения указанному серверу (Forward all messages to host), дает указания коннектору, отправлять все исходящие сообщения на SMTP Relay. Может указываться либо IP-адрес внешнего SMTP-сервера, либо его имя, которое может быть разрешено или через DNS, или через локальный файл hosts;
- использовать отдельные настройки для доменов (E-Mail Domain), позволяет выполнять настройки способа доставки сообщений, аналогичные описанным в предыдущих подпунктах, в зависимости от имени SMTP-доменов;
- фильтрация входящих сообщений (Accept or Reject by host), на основе анализа IP-адреса позволяет отфильтровывать попытки установления входящих соединений как для отдельных компьютеров, так и для отдельных подсетей;
- настройки исходящей очереди (Service Message Queues), позволяет устанавливать интервал, через который будут осуществляться попытки доставить сообщение. Дополнительно можно указать предельное время ожидания отправки сообщений с различным приоритетом и периодичность уведомления отправителя о факте задержки;
- очереди (Queues), позволяет просмотреть содержимое очередей сообщений ожидающих доставки или преобразования форматов во входящей и исходящей очередях.
Администратор может получить информацию об отправителе сообщения, изменить приоритет или удалить сообщение из очереди. В последнем случае автор письма получает уведомление о невозможности доставки; - маршрутизация (Routing), позволяет установить следующие опции:
- не выполнять маршрутизацию (Do not reroute incoming SMTP mail), принимаются и обрабатываются только сообщения, направленные пользователям, чьи адреса присутствуют в адресной книге, в том числе внешних адресатов. Возможность перенаправления почты в последнем случае обеспечивается за счет наличия механизма замещения (Proxying). Этот режим соответствует функциональности предыдущей версии сервера Exchange Server;
- использовать таблицу маршрутизации (Reroute incoming SMTP mail), позволяет построить таблицу маршрутизации сообщений, принимаемых коннектором. Наличие данной возможности позволяет использовать Exchange Server в качестве SMTP Relay и Smart Host. Использование этой опции обязательно при поддержке пользователей, обращающихся к серверу по протоколу POP3. В зависимости от имени домена, пришедшее сообщение может обрабатываться следующим образом:
- если домен адресата не совпадает ни с одним доменом в таблице, производится попытка выполнить доставку сообщения внешнему SMTP-серверу;
- если домен адресата помечен как входящий (inbound), сообщение преобразуется во внутренний формат и дальнейшая доставка выполняется средствами сервера Exchange;
- если домен адресата помечен для маршрутизации, соответствующим образом переписывается поле "Кому" на конверте сообщения и осуществляется доставка по новому адресу; - использовать для маршрутизации внешнюю программу (use this custom routing program), позволяет использовать для выполнения маршрутизации внешнюю динамическую библиотеку, реализующую какой-либо нестандартный алгоритм. Примером такой программы может служить Internet Mail Service Sample Extension DLL, входящая в состав Exchange Server 5.0 Resource Kit;
- секретность (Security), позволяет установить режим повышенной секретности для всех или избранных исходящих соединений.
В случае использования данного режима весть трафик между SMTP-серверами шифруется. Принимающая система должна быть также под сервером Exchange; - общие (General), позволяет просмотреть имя сервера, на котором установлен коннектор, установить предельный размер сообщения, которое может быть передано через SMTP-шлюз, и добавить административный комментарий;
- права (Permissions), позволяет управлять списком доступа и правами на данный объект;
- объединяемые площадки (Connected Sites), позволяет построить таблицу маршрутизации, используемую при доставке сообщений синхронизации каталога между площадками организации. При создании новой записи в таблице указываются имя организации и площадки, а также SMTP-адрес точки маршрутизации;
- адресное пространство (Address Space), позволяет описать адресное пространство данного коннектора. Как уже упоминалось, используя адресные пространства, существует возможность организовать инкапсуляцию почтового трафика систем X.400, cc:Mail, MS Mail и т.д. поверх SMTP. Для этого в таблицу коннектора нужно добавить адресную маску соответствующего типа (или типа General для нестандартных типов адресов) и адрес точки маршрутизации в формате SMTP.
Для того чтобы использовать удаленный доступ для приема сообщений, необходимо следующее:
- сервер, осуществляющий прием почты, должен иметь фиксированный IP-адрес при каждом соединении, либо служба DNS Вашего поставщика услуг Internet (ISP) должна поддерживать динамическую регистрацию имен;
- ISP должен накапливать почтовые сообщения, адресованные Вашему домену, и его SMTP-сервер должен поддерживать режим удаленной инициации доставки. В зависимости от применяемой поставщиком услуг системы, для этого могут использоваться программы finger, rsh, rexec и т.п. За более подробной информацией следует обратиться к источнику [25];
- в настройках коннектора SMTP должна быть указана программа, инициирующая доставку накопленной почты на Ваш компьютер.
В данной версии сервера Exchange описания зарегистрированных трансляторов кодовых таблиц хранятся в реестре Windows NT в ключах HKEY_CLASSES_ROOT\MIME\Database\Charset и HKEY_CLASSES_ROOT\MIME\Database\Codepage.Используя программу Regedit, можно добавлять собственные типы трансляторов, например, для кодовой страницы MS-DOS (x-cp866), которые будут распознаваться во входящих сообщениях и корректно преобразовываться. Однако для того, чтобы иметь возможность отправлять сообщения в данной кодировке, потребуется установка файла транслятора в каталог \CONNECT\TRN.
На сервере может быть создан только один SMTP-коннектор, однако в составе площадки, на различных серверах, может быть установлено несколько таких коннекторов с целью разделения функций или балансировки нагрузки.