ПЕРЕДАЧА СООБЩЕНИЙ МЕЖДУ ИНТЕРНАЦИОНАЛИЗИРОВАННЫМИ И НЕИНТЕРНАЦИОНАЛИЗИРОВАННЫМИ СИСТЕМАМИ ЭЛЕКТРОННОЙ ПОЧТЫ
TRANSMITTING MESSAGES BETWEEN INTERNATIONALISED EMAIL SYSTEMS AND NON-INTERNATIONALISED EMAIL SYSTEMS

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение в целом относится к серверам электронной почты и более конкретно к серверам электронной почты, сконфигурированным для работы с почтовыми адресами, записанными не в кодах ASCII.
УРОВЕНЬ ТЕХНИКИ
По мере развития вычислительных сетей электронная почта стала популярным средством обмена сообщениями как в частной переписке, так и в производственной (коммерческой) деятельности. Во многом благодаря распространению Интернета электронная почта уже стала стандартным средством общения для миллиардов людей.
Для создания сообщения электронной почты отправитель использует почтовый агент пользователя (MUA). Примеры агентов MUA включают клиентские приложения, такие как, например, Microsoft Outlook и Mozilla Thunderbird, а также сетевые приложения, такие как Hotmail и Gmail. Как известно, отправитель создает сообщение электронной почты (электронное письмо), вводя один или несколько адресов, тему сообщения, содержательную часть сообщения, и, кроме того, к сообщению могут быть приложены файлы. Почтовый адрес содержит две части. Первая часть называется доменом почтового адреса и указывает имя узла или имя домена (доменное имя). Доменное имя обычно находится справа от знака "@". Вторая часть является именем пользователя или его учетным именем и используется для идентификации учетной записи в домене. Имя пользователя обычно находится слева от знака "@".
Агент MUA передает электронное письмо получателю (или получателям) через сервер передачи электронной почты. Такой сервер содержит агент передачи электронной почты (MSA) и транспортный агент электронной почты (МТА). Агент МТА взаимодействует с системой доменных имен (DNS) для разрешения доменного имени адреса электронного письма и получения соответствующего адреса протокола сети Интернет (IP-адрес). МТА-сервер использует полученный IP-адрес для передачи сообщения в сервер приема электронной почты для получателя. Электронное письмо может быть передано непосредственно в сервер приема электронной почты или же может ретранслироваться через несколько агентов МТА.
Сервер приема электронной почты обычно содержит агент МТА, агент локальной доставки, локальное файловое запоминающее устройство, а также сервер почтового протокола (POP) и/или сервер протокола доступа к сообщениям сети Интернет (IMAP) для обеспечения считывания электронных писем. Получатель использует агент MUA для считывания электронного письма из сервера получения электронной почты.
В типичной среде, использующей американский стандартный код для обмена информацией (ASCII), все компоненты в сети способны обрабатывать адрес электронного письма, записанный в кодах ASCII. Однако адреса электронных писем в недалеком будущем могут содержать многоязычные (интернационализированные) символы, не входящие в ASCII-алфавит. Например, многоязычные доменные имена (IDN) определяются как доменные имена сети Интернет, которые могут содержать символы, отличные от символов ASCII. Предусматривается, что многоязычные адреса электронной почты могут также содержать многоязычные имена пользователей. Поэтому такие многоязычные имена пользователей могут также содержать символы, отличные от символов ASCII.
Чтобы преодолеть это ограничение, был предложен способ, который позволяет компонентам системы электронной почты перекодировать многоязычные адреса в формат ASCII. В частности, пользователь определяет для многоязычного адреса электронной почты альтернативный ASCII-адрес (содержит только символы ASCII-алфавита). Соответственно, для компонента системы, использующего только ASCII-символы, многоязычный адрес электронной почты перед доставкой электронного письма этому компоненту преобразуется путем замены его альтернативным ASCII-адресом.
Это решение позволяет доставлять электронные письма с многоязычными адресами с использованием существующих компонентов сети.
Таким образом, существует потребность в улучшенном способе доставки электронных писем с многоязычными адресами по сети, которая может содержать один или несколько компонентов, которые совместимы только с системой ASCII-адресов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В настоящем изобретении предлагается способ, реализуемый на компьютере, для передачи сообщения электронной почты от отправителя выбранному получателю, который способен получать только сообщения, закодированные с использованием американского стандартного кода для обмена информацией (ASCII), и отправитель и/или другие получатели имеют адреса, закодированные не в формате ASCII, причем способ включает: формирование преобразованных ASCII-адресов для каждого из адресов, записанных не в кодах ASCII, путем: формирования имени пользователя в результате преобразования адресов, записанных не в кодах ASCII, с использованием предварительно определенного алгоритма преобразования; выбора доменного имени из одного или нескольких предварительно определенных доменных имен, каждое из которых сконфигурировано для разрешения предварительно определенного шлюзового сервера; и объединения имени пользователя и доменного имени для формирования преобразованного ASCII-адреса электронной почты; замена адресов электронной почты, записанных не в кодах ASCII, соответствующим преобразованным ASCII-адресом; перекодирование остальной части сообщения электронной почты в формат ASCII, если это необходимо, с использованием предварительно определенного протокола; и передача сообщения электронной почты выбранному получателю.
В настоящем изобретении также предлагается шлюзовой сервер, сконфигурированный для осуществления вышеописанного способа. Кроме того, в изобретении предлагается машиночитаемый носитель информации с записанными на нем командами для осуществления вышеописанного способа.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Один из вариантов осуществления настоящего изобретения, являющийся всего лишь примером, описывается ниже со ссылками на прилагаемые чертежи, на которых показано:
На Фиг. 1 - блок-схема инфраструктуры стандартной сети (предшествующий уровень);
На Фиг. 2 - блок-схема инфраструктуры сети по одному из вариантов осуществления настоящего изобретения;
На Фиг. 3 - блок-схема алгоритма, иллюстрирующая передачу электронного письма с адресом, содержащим символы, отличающиеся от ASCII-символов, когда один или несколько компонентов почтовой системы доставки электронных писем не могут обрабатывать такие адреса.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Для удобства одинаковые ссылочные номера, используемые в описании, относятся к одинаковым элементам на чертежах. На фигуре 1 приведена блок-схема инфраструктуры стандартной сети, указанной в целом ссылочным номером 100. Сеть 100 содержит передающее средство 102, сеть 104 передачи данных и принимающее средство 106. Передающее средство 102 содержит сервер 108 передачи сообщений электронной почты, и принимающее средство 106 содержит сервер 110 приема сообщений электронной почты. Сеть 104 связи содержит различные компоненты сети, необходимые для обеспечения связи между сервером 108 передачи сообщений электронной почты и сервером 110 приема сообщений электронной почты, как это хорошо известно специалистам в данной области техники.
Передающее средство 102 представляет собой вычислительное устройство, способное передавать сообщения электронной почты, такое как, например, персональный компьютер, ноутбук, смартфон, планшет или карманный компьютер. Передающее средство 102 обеспечивает пользователя возможностью ввода сообщений с помощью почтового агента пользователя (MUA). На сервере 108 передачи электронной почты используется агент 114 передачи электронной почты (MSA) и транспортный агент 116 электронной почты (МТА).
Как это известно специалистам, сервер 108 передачи электронной почты может быть локальным для передающего средства 102, соединенным с ним по локальной сети (не показана), или же может находиться на удаленном сайте. В последнем случае сервер 108 соединяется с передающим средством 102 по сети 104 передачи данных.
Аналогично передающему средству 102, принимающее средство 106 представляет собой вычислительное устройство, способное принимать сообщения электронной почты, такое как, например, персональный компьютер, ноутбук, смартфон, планшет или карманный компьютер. Принимающее средство 106 обеспечивает пользователю доступ к принятым сообщениям с помощью агента MUA. На сервере 110 приема электронной почты используется агент 118 МТА, агент 120 локальной доставки, локальное файловое запоминающее устройство 122 и сервер 124 считывания сообщений.
Как это известно специалистам, сервер 110 приема электронной почты может быть локальным для принимающего средства 106, соединенным с ним по локальной сети (не показана), или же может находиться на удаленном сайте. В последнем случае сервер 110 соединяется с принимающим средством 106 по сети 104 передачи данных.
Агент МТА 118 сконфигурирован для приема электронных писем из сервера 108 передачи электронной почты или непосредственно, или через несколько промежуточных агентов МТА 118. Агент 120 локальной доставки сконфигурирован для обеспечения хранения принятого электронного письма в локальном файловом запоминающем устройстве 122 в папке, соответствующей имени пользователя. Сервер 124 считывания сообщений содержит один или несколько РОР-серверов, IMAP-сервер или локальный хост-сервер, и сконфигурирован для доставки электронных писем из локального файлового запоминающего устройства 122 в принимающее средство 106 для отображения с помощью агента MUA.
В соответствии с рассматриваемым вариантом между многоязычным сервером электронной почты, способным обрабатывать многоязычные почтовые адреса, и традиционным сервером электронной почты, неспособным обрабатывать многоязычные почтовые адреса, расположен один или несколько шлюзовых серверов. Сеть электронной почты в соответствии с рассматриваемым вариантом настоящего изобретения указана в целом на фигуре 2 ссылочным номером 200. Сеть 200 электронной почты содержит традиционный сервер 202 электронной почты, два многоязычных сервера 204 электронной почты, два шлюзовых сервера 206 и сеть 104 передачи данных.
Для специалиста в данной области техники будет понятно, что конкретные количества серверов указаны лишь для удобства описания, и сеть 200 электронной почты может содержать один или несколько традиционных серверов 202, один или несколько многоязычных серверов 204 и один или несколько шлюзовых серверов 206.
Многоязычные серверы 204 электронной почты и традиционные серверы 202 электронной почты могут содержать агенты MUA, MSA 114 и/или MTA 118. Кроме того, многоязычные серверы 204 электронной почты и традиционные серверы 202 электронной почты сконфигурированы для обмена сообщениями аналогично серверу 108 передачи электронной почты и серверу 110 приема электронной почты, описанным со ссылками на фигуру 1.
Однако в рассматриваемом варианте сообщения электронной почты направляются через шлюзовой сервер 206. То есть шлюзовой сервер 206 сконфигурирован для приведения сообщений электронной почты, полученных из одного из многоязычных серверов 204 электронной почты, к стандартному формату, который может обрабатываться традиционным сервером 202 электронной почты. Кроме того, шлюзовой сервер 206 сконфигурирован для приведения любого сообщения, принятого из традиционного сервера 202 электронной почты, к многоязычному формату для многоязычных серверов 204 электронной почты. Шлюзовые серверы 206 могут быть сконфигурированы для обмена данными непосредственно с соответствующими многоязычными серверами электронной почты или через сеть 104 передачи данных.
В рассматриваемом варианте шлюзовые серверы 206 работают в качестве промежуточных агентов МТА 118. Таким образом, шлюзовые серверы 206 имеют один или несколько связанных доменов шлюзов и запись MX, сконфигурированную в реестре DNS для обеспечения IP-адреса шлюзового сервера 206, так чтобы другие МТА 118 могли к нему подсоединиться. Соответственно, каждый многоязычный сервер 204 электронной почты конфигурируется для направления сообщений электронной почты в соответствующий шлюзовой сервер 206.
В первом примере каждый шлюзовой сервер 206 связан с соответствующим многоязычным сервером 204 электронной почты. Таким образом, многоязычные серверы 204 электронной почты конфигурируются для передачи сообщений электронной почты в разные шлюзовые серверы 206.
Во втором примере шлюзовой сервер 206 работает в режиме совместного использования и поэтому связан с соответствующей группой многоязычных серверов 204 электронной почты. Соответственно, группа многоязычных серверов 204 электронной почты конфигурируется для направления сообщений электронной почты в один и тот же шлюзовой сервер 206. В этом примере обеспечивается возможность для третьих лиц оказывать своим клиентам услуги шлюзов.
Специалисту в данной области техники будет понятно, что может быть реализована схема, представляющая собой комбинацию первого и второго примеров.
Следует отметить, что традиционный сервер 202 электронной почты не должен быть сконфигурирован для использования одного из шлюзовых серверов 206, поскольку он не может передавать сообщения электронной почты с адресами, записанными не в кодах ASCII, которые необходимо преобразовывать. Однако когда традиционный сервер 202 электронной почты получает сообщение электронной почты из шлюзового сервера 206, любой многоязычный почтовый адрес будет перекодирован в ASCII-адрес. Этот перекодированный ASCII-адрес включает имя пользователя, содержащее уникальный идентификатор, и домен, связанный со шлюзовым сервером 206, как это будет описано ниже. Соответственно, традиционный сервер 202 электронной почты может передавать ответы в многоязычные серверы 204 электронной почты через шлюзовой сервер 206 с использованием стандартного поиска на сервере DNS. Затем шлюзовой сервер 206 может передать эти ответы в многоязычные серверы 204 электронной почты путем преобразования (отображения) уникального идентификатора в соответствующий многоязычный почтовый адрес.
Для обеспечении обратной совместимости шлюзовой сервер 206 конфигурируется для обработки всех возможных сообщений электронной почты, передаваемых между многоязычными серверами 204 и традиционными серверами 202 электронной почты. Соответственно, шлюзовой сервер 206 доставляет сообщения электронной почты всем получателям, указанным отправителем. Кроме того, шлюзовой сервер 206 доставляет отправителю ответы получателей. Для надежной доставки сообщений электронной почты в соответствии с упрощенным протоколом электронной почты (SMTP) требуется, чтобы все получатели были способны отвечать на все сообщения электронной почты и на все последующие ответы.
Принципиальная несовместимость между многоязычными серверами 204 электронной почты и традиционными серверами 202 электронной почты возникает в том случае, когда сообщение электронной почты содержит отправителей и/или получателей, который представляют собой сочетание почтовых адресов, содержащих только ASCII-символы, и почтовых адресов, содержащих многоязычные символы.
Поэтому шлюзовой сервер 206 снабжается программным обеспечением маршрутизации (далее "программа маршрутизации"), которое облегчает передачу данных между многоязычными серверами 204 электронной почты и традиционными серверами 202 электронной почты. На фигуре 3 приведена блок-схема алгоритма 300 работы программы маршрутизации, установленной на шлюзовом сервере 206. На стадии 302 шлюзовой сервер 206 принимает сообщение электронной почты, которое должно быть передано одному или нескольким получателям, и выбирает первого получателя. На стадии 304 шлюзовой сервер 206 определяет, связан или нет домен выбранного получателя со шлюзовым сервером 206.
Если домен связан со шлюзовым сервером 206, выполнение программы маршрутизации продолжается на стадии 305. Почтовый адрес, домен которого связан со шлюзовым сервером 206, является результатом ранее преобразованного исходного почтового адреса. Соответственно, на стадии 305 исходный почтовый адрес получателя считывается с использованием обратного преобразования почтового адреса, и выполнение программы маршрутизации продолжается на стадии 306. Подробное описание преобразования и обратного преобразования почтовых адресов будет приведено после полного описания работы программы маршрутизации.
Если домен не связан со шлюзовым сервером 206, выполнение программы маршрутизации продолжается на стадии 306. На этой стадии программа маршрутизации определяет, является ли адрес получателя многоязычным почтовым адресом (IDN). Если адрес получателя является многоязычным почтовым адресом, то выполнение программы маршрутизации продолжается на стадии 308. На этой стадии определяется, содержит ли сообщение электронной почты также других получателей, адреса которых имеют домен, связанный со шлюзовым сервером 206.
Если нет других почтовых адресов, которые имеют домен, связанный со шлюзовым сервером 206, то на стадии 312 сообщение электронной почты передается получателю с использованием многоязычного стандарта. Если же имеются другие почтовые адреса, которые имеют домен, связанный со шлюзовым сервером 206, то на стадии 310 почтовые адреса подвергаются обратному преобразованию для получения исходных почтовых адресов. После получения исходных почтовых адресов сообщение электронной почты передается получателю (стадия 312).
Если на стадии 306 определяется, адрес получателя не является многоязычным почтовым адресом, то выполнение программы маршрутизации продолжается на стадии 314. В этом случае известно, что почтовый адрес получателя - это ASCII-адрес, поскольку он не является многоязычным почтовым адресом. Соответственно, на стадии 314 определяется, является ли адрес отправителя ASCII-адресом, и соответствует ли сообщение электронной почты стандарту многоязычного сообщения. Для определения соответствия сообщения электронной почты стандарту многоязычного сообщения может использоваться несколько способов. Например, если сообщение электронной почты было передано в шлюзовой сервер 206, команда SMTP MAIL FROM может указывать на то, что это многоязычное сообщение. В другом примере сообщение электронной почты может сканироваться для определения того, что оно содержит символы, не принадлежащие к ASCII-алфавиту, которые не допускаются стандартом многоязычного сообщения, включая других получателей, указанных в сообщении.
Если выполняются оба критерия, то выполнение программы маршрутизации продолжается на стадии 342, и сообщение передается с использованием стандарта многоязычного сообщения. Если не выполняется хотя бы один из критериев, то выполнение программы маршрутизации продолжается на стадии 316.
На стадии 316 определяется, может или нет получатель принимать многоязычные сообщения электронной почты. То есть самого адреса сообщения электронной почты может быть недостаточно для определения возможности получателя принимать многоязычные сообщения. Например, пользователи, имеющие ASCII-адрес электронной почты, могут не изменять их даже тогда, когда они переходят от традиционного сервера 202 к многоязычному серверу 204 электронной почты. Кроме того, пользователи скорее всего будут продолжать создавать новые ASCII-адреса электронной почты при использовании многоязычного сервера 204.
Существуют различные способы определения возможности приема получателем многоязычных сообщений электронной почты. Например, адрес получателя может быть определен путем поиска в записи MX системы DNS домена выбранного получателя. Шлюзовой сервер 206 осуществляет SMTP-соединение с соответствующим сервером МТА и передает команду SMTP EHLO. Если ответ от соответствующего сервера МТА содержит определенный признак, указывающий на поддержку сервером многоязычных адресов, этот сервер МТА 118, связанный с выбранным получателем, является многоязычным сервером, в соответствии с проектом стандарта EAI "SMTP-расширение для многоязычных адресов электронной почты", draft-ietf-eai-rfc5336bis, http://tools.ietf.org/wg/eai/. В другом примере в информации о конфигурации, относящейся к доменам получателя, или в отдельных адресах электронной почты могут быть установлены параметры для поддержки в определении возможности приема получателем многоязычных сообщений электронной почты. Могут быть предложены и другие способы без выхода за пределы объема настоящего изобретения.
Если определено, что выбранный получатель может получать многоязычные сообщения электронной почты, выполнение программы маршрутизации продолжается на стадии 308. Если же определено, что выбранный получатель не может получать многоязычные сообщения электронной почты, выполнение программы маршрутизации продолжается на стадии 318.
На стадии 318 программа маршрутизации перекодирует многоязычные адреса электронной почты в заголовках сообщений в ASCII-формат. Это перекодирование может включать отправителя, а также любых получателей в полях From, To, Cc и других стандартных полях сообщения электронной почты. Ниже описывается перекодирование многоязычных адресов электронной почты в ASCII-адреса.
Основная форма представления адреса электронной почты - это отображаемое имя (необязательный элемент), после которого следует адрес электронной почты в угловых скобках. Соответствующий преобразованный ASCII-адрес электронной почты получают в несколько стадий. На первой стадии 318a из многоязычного адреса электронной почты с использованием заданного алгоритма преобразования формируется ASCII-имя пользователя. На второй стадии 318b из множества предварительно определенных доменов выбирается ASCII-домен. Сформированное ASCII-имя пользователя и выбранный ASCII-домен объединяются для формирования преобразованного ASCII-адреса электронной почты. На третьей стадии 318 с (необязательная стадия) определяется отображаемое имя.
Затем после преобразования всех многоязычных адресов электронной почты программа маршрутизации на стадии 320 перекодирует другие части сообщения электронной почты, если это необходимо. Этими другими частями может быть тема сообщения или поля заголовков MIME-части письма. Другие части сообщения электронной почты могут быть преобразованы разными способами. В рассматриваемом варианте другие части сообщения электронной почты перекодируются в соответствии с разрабатываемым стандартом "Преобразование многоязычных сообщений электронной почты после их доставки", draft-ietf-eai-popimap-downgrade-00.txt, который можно найти на сайте http://tools.ietf.org/wg/eai/draft-ietf-eai-popimap-downgrade/.
На стадии 342 сообщение электронной почты передается выбранному получателю. На стадии 344 программа маршрутизации проверяет наличие еще одного получателя, которому должно быть передано сообщение электронной почты. Если другого получателя нет, то передача сообщения электронной почты от шлюзового сервера 206 завершается, и на стадии 346 передача сообщения электронной почты заканчивается. Если имеется еще один получатель, то на стадии 348 следующий получатель становится выбранным получателем, и выполнение программы маршрутизации продолжается на стадии 304.
Соответственно, следует понимать, что выполнение программы маршрутизации на шлюзовом сервере 206 облегчает передачу сообщения электронной почты от отправителя с использованием многоязычного сервера 204 электронной почты множеству получателей, включая по меньшей мере одного получателя, который использует традиционный сервер 202 электронной почты таким образом, что он прозрачен и для отправителя, и для получателя. Программа маршрутизации обеспечивает передачу сообщения электронной почты получателям с использованием многоязычных серверов 204 электронной почты без всякой модификации. Программа маршрутизации преобразует сообщение электронной почты и обеспечивает его передачу получателям с использованием традиционных серверов 202 электронной почты. Кроме того, программа маршрутизации обрабатывает ответные сообщения от получателей.
Ниже подробно описывается вышеупомянутое преобразование адресов и других частей сообщений электронной почты. Например, рассмотрим адрес  электронной почты, содержащий символы, не входящие в алфавит ASCII. На стадии 318a для формирования ASCII-имени пользователя такой адрес электронной почты перекодируется в формат ASCII с использованием предварительно определенного алгоритма преобразования. Как это будет понятно специалисту в данной области техники, алгоритм преобразования может быть одним из известных или фирменных алгоритмов преобразования. В рассматриваемом варианте алгоритм преобразования имеет следующие особенности. Алгоритм преобразования может кодировать любую произвольную входную строку UTF8-символов в строку ASCII-символов, которая представляет действительное ASCII-имя пользователя электронной почты. Эта закодированная строка ASCII-символов не может быть получена из другой строки UTF8-символов. Существует алгоритм обратного преобразования или декодирования, при применении которого к закодированной строке ASCII-символов будет получена исходная входная строка UTF8-символов. Желательно, чтобы алгоритм преобразования был нечувствителен к регистру символов, так что если какой-либо процесс или пользователь изменит при вводе регистр некоторых ASCII-символов закодированной строки в ответном сообщении, то все-таки будет получена исходная строка UTF8-символов.
В одном из таких алгоритмов каждый байт строки UTF8-символов представляется как два шестнадцатиричных числа. Так, например, адрес  электронной почты имеет шестнадцатиричное представление .
В другом таком алгоритме осуществляется кодирование по основанию 64. Такое кодирование в некоторых случаях может быть более предпочтительно по сравнению с кодированием по основанию 16, поскольку в этом случае формируется более компактный код, и такое кодирование уже используется в стандартах электронной почты, таком как, например: "Многоцелевые расширения электронной почты Интернета (MIME), Часть 1: Формат основного текста сообщения", http://tools.ietf.org/html/rfc2045. При кодировании по основанию 64 вышеуказанного адреса  получаем следующий код: .
Еще в одном алгоритме осуществляется кодирование по основанию 32. Кодирование по основанию 32 может быть предпочтительным по сравнению с кодированием по основанию 64, поскольку оно нечувствительно к регистру символов. При кодировании по основанию 32 вышеуказанного адреса  с использованием нижнего регистра вместо верхнего регистра получаем следующий код: .
Для поддержки возможных изменений в будущем алгоритма преобразования в начале закодированной строки ASCII-символов добавляется байт идентификатора алгоритма. Идентификатор алгоритма используется для указания алгоритма из множества возможных алгоритмов преобразования, который используется для кодирования строки ASCII-символов. Идентификатор алгоритма - это символ действующей электронной почты, который отличается от идентификаторов алгоритмов, используемых для указания других алгоритмов кодирования. Идентификаторы алгоритмов могут быть выбраны произвольно и присвоены конкретным алгоритмам кодирования для обеспечения непрерывности при прохождении сообщений через несколько шлюзовых серверов 206.
В рассматриваемом варианте в качестве идентификатора алгоритма кодирования по основанию 32 выбран байт "*", так что имя пользователя будет иметь вид .
На стадии 318b для обеспечения домена для преобразованного ASCII-адреса электронной почты шлюзовой сервер выбирает домен из заранее подготовленного перечня доступных доменов шлюзов. Каждый домен из этого перечня доменов шлюзов связан со шлюзовым сервером 206 в реестре DNS.
Как уже указывалось, шлюзовой сервер 206 может обслуживать один многоязычный сервер 204 электронной почты или несколько таких серверов 204. Каждый многоязычный сервер 204 электронной почты использует один или несколько почтовых доменов. Если шлюзовой сервер 206 обслуживает один многоязычный сервер 204 электронной почты, который использует только один почтовый домен, то используется только один домен шлюза. Например, если в качестве домена используется домен шлюза gateway.afilias.info, то адрес электронной почты будет иметь вид:
Если, однако, шлюзовой сервер 206 обслуживает один многоязычный сервер 204 электронной почты, который использует несколько доменов шлюзов, или шлюзовой сервер 206 обслуживает несколько многоязычных серверов 204 электронной почты, которые используют один или несколько почтовых доменов, то домен шлюза выбирается из перечня возможных доменов шлюзов. Каждый домен шлюза в этом перечне связан с соответствующим почтовым доменом и, соответственно, с соответствующим многоязычным сервером 204 электронной почты. В рассматриваемом выше примере для шлюзового сервера 206 могут быть зарегистрированы следующие домены: gateway.afilias.info, gw.athens.com и gw.afilias.info. Каждый из этих доменов связан с соответствующим доменом электронной почты:  и по умолчанию, соответственно. Эта информация записана и хранится на шлюзовом сервере 206 в таблице конфигурации доменов, часть которой показана в Таблице 1.
Таким образом, если адрес электронной почты, содержащий символы, которые не входят в ASCII-алфавит, включает почтовый домен, который обслуживается шлюзовым сервером 206, домен преобразованного ASCII-адреса электронной почты является связанным доменом шлюза. Например, если почтовым доменом является , то доменом преобразованного ASCII-адреса электронной почты будет домен шлюза gateway.afilias.info. Аналогично, если почтовым доменом является , то доменом преобразованного ASCII-адреса электронной почты будет домен шлюза gw.athens.com. Если почтовый домен не обслуживается шлюзовым сервером 206, доменом преобразованного ASCII-адреса электронной почты будет домен по умолчанию, gw.afilias.info.
На стадии 318с определяется отображаемое имя. В рассматриваемом варианте отображаемое имя для адреса электронной почты формируется путем объединения исходного отображаемого имени, описательного комментария и многоязычного адреса электронной почты. Описательный комментарий - это заранее определенный комментарий, связанный с почтовым доменом и доменом шлюза в таблице конфигурации доменов.
Поскольку в заголовках ASCII-сообщения электронной почты не допускаются символы, не входящие в ASCII-алфавит, то шлюзовой сервер 206 кодирует исходное отображаемое имя с использованием MIME, когда передает сообщение электронной почты, в соответствии с RFC 2047, "Многоцелевые расширения электронной почты Интернета (MIME), Часть 3: Расширения заголовков сообщения для текста, содержащего символы, не входящие в ASCII-алфавит", http://tools.ietf.org/html/rfc2047.
Соответственно, отображаемые имена дают получателю полное представление о многоязычных адресах электронной почты, поскольку получатель скорее всего не сможет распознать преобразованные адреса электронной почты. Соответственно, в предыдущем примере окончательный преобразованный ASCII-адрес электронной почты будет иметь следующий вид:
“ , преобразованный из многоязычного адреса ”
В рассматриваемом варианте описывается обеспечение домена шлюза для каждого почтового домена. Однако поскольку весь адрес электронной почты, содержащий символы, которые не входят в ASCII-алфавит, кодируется в имени пользователя преобразованного адреса электронной почты, то этого будет достаточно для обеспечения одного домена шлюза для всех почтовых доменов. Однако обеспечение домена шлюза для каждого почтового домена повышает гибкость применения, как это иллюстрируется в отношении описательных комментариев. Кроме того, поскольку получатель видит домен шлюза, он будет получать представление об источнике полученного сообщения электронной почты. Например, компания может использовать домен china.afilias.com шлюза для адресов электронной почты, преобразованных из адресов китайского филиала компании, и домен europe.afilias.com для адресов электронной почты, преобразованных из адресов европейского филиала.
Как уже указывалось, многие пользователи могут продолжать использовать адреса электронной почты в формате ASCII даже после того, как их почтовые серверы будут обновлены до уровня многоязычных серверов 204 электронной почты. Хотя программа маршрутизации не должна преобразовывать ASCII-адреса электронной почты при преобразовании сообщения, однако если этого не делать, то ответы на сообщение электронной почты могут приходить на многоязычные серверы 204 электронной почты с преобразованными адресами электронной почты шлюзовых серверов вместо исходных многоязычных почтовых адресов. Это может создавать неудобства.
Соответственно, в альтернативном варианте программа маршрутизации также преобразует все ASCII-адреса электронной почты, домены которых не связаны со шлюзовым доменом 206, в преобразованные ASCII-адреса электронной почты, домены которых связаны со шлюзовым сервером 206. Еще в одном альтернативном варианте программа маршрутизации перекодирует все ASCII-адреса электронной почты, которые связаны с многоязычным сервером электронной почты, в преобразованные ASCII-адреса электронной почты, домены которых связаны со шлюзовым сервером 206.
Пример алгоритма преобразования ASCII-адресов описывается с использованием почтового адреса Ernie Dainow <edainow@afilias.info> и идентификатора "#" алгоритма преобразования. На стадии 318а формируется преобразованное ASCII-имя пользователя. Последний символ "@" в адресе электронной почты, который будет символом "@" перед доменным именем, заменяется идентификатором "#" алгоритма. Кроме того, идентификатор "#" алгоритма добавляется перед адресом электронной почты, так что имя пользователя будет иметь вид #edainow#afilias.info.
На стадии 318b для обеспечения домена для преобразованного ASCII-адреса электронной почты шлюзовой сервер 206 выбирает домен из заранее подготовленного перечня доступных доменов шлюзов. В рассматриваемом примере домен afilias.info преобразуется в домен gway.afilias.info. Соответственно, к имени пользователя добавляется символ "@" и имя домена шлюза, после чего адрес электронной почты будет иметь вид: #edainow#afilias.info@gway.afilias.info.
На стадии 318c определяется отображаемое имя. Как уже указывалось, отображаемое имя для адреса электронной почты формируется путем объединения исходного отображаемого имени, описательного комментария и многоязычного адреса электронной почты. В рассматриваемом примере описательный комментарий имеет вид "преобразовано из". Соответственно, преобразованный ASCII-адрес электронной почты имеет окончательный вид:
"Ernie Dainow преобразовано из edamow@afflias.info"<#edainow#afilias.info@gway.afilias.info>.
Соответственно, преобразованные ASCII-адреса электронной почты направляют все ответы через шлюзовой сервер 206, в котором все преобразованные адреса в сообщении электронной почты, как в формате ASCII, так и в другом формате, могут быть возвращены к исходному виду.
Ниже описывается обратное преобразование адресов и других частей сообщений электронной почты. Для восстановления исходного многоязычного адреса электронной почты, шлюзовой сервер 206 извлекает из адреса электронной почты имя пользователя. Если, например, адрес электронной почты является многоязычным адресом из предыдущего примера, , то извлеченное имя пользователя будет иметь вид:
.
Из имени пользователя удаляется идентификатор алгоритма, который анализируется для определения исходного алгоритма, который использовался для преобразования. В рассматриваемом примере символ "*" указывает на то, что использовался алгоритм кодирования по основанию 32. Соответственно, обратное преобразование осуществляется путем стандартного декодирования по основанию 32, в результате чего восстанавливается адрес  электронной почты,
содержащий символы, не входящие в ASCII-алфавит.
Отображаемое имя изменяется путем удаления комментария и многоязычного домена, которые были добавлены ранее, и восстановленный полный адрес, содержащий символы, не входящие в ASCII-алфавит, будет иметь вид:
.
Для восстановления исходного ASCII-адреса электронной почты, шлюзовой сервер 206 извлекает из адреса электронной почты имя пользователя. Если, например, адрес электронной почты является ASCII-адресом из предыдущего примера, edainow@afilias.info, то извлеченное имя пользователя будет иметь вид: #edainow#afilias.info.
Из имени пользователя удаляется идентификатор алгоритма, который анализируется для определения исходного алгоритма, который использовался для преобразования. В рассматриваемом примере символ "#" указывает на то, что использовался алгоритм кодирования ASCII. Соответственно, обратное преобразование осуществляется путем замены последнего символа "#" символом "@", и восстанавливается исходный ASCII-адрес электронной почты, edainow@afilias.info.
Отображаемое имя изменяется путем удаления комментария и ASCII-адреса электронной почты, добавленных к нему ранее, и исходный адрес электронной почты восстанавливается как "Ernie Dainow"<edainow@afilias.info>.
Для лучшего понимания ниже будут описаны три примера, иллюстрирующие работу программы маршрутизации. В первом примере первый пользователь с многоязычным адресом (user1@I1) передает сообщение электронной почты второму пользователю с многоязычным адресом (user2@I2) и третьему пользователю с ASCII-адресом (user3@A1). Первый и второй пользователи связаны с многоязычным сервером 204 электронной почты, а третий пользователь связан с традиционным сервером 202 электронной почты. Заголовки сообщения электронной почты имеют вид:
From: user1@I1
То: user2@I2
Cc: user3@A1
Соответственно, первый пользователь передает сообщение электронной почты в связанный с ним первый шлюзовой сервер 206. Программа маршрутизации получает сообщение электронной почты и выбирает второго пользователя в качестве выбранного получателя. Поскольку второй пользователь содержит многоязычный адрес электронной почты (адрес, содержащий символы, не входящие в ASCII-алфавит), сообщение направляется второму пользователю. Соответственно, заголовки сообщения электронной почты, принятого вторым пользователем, имеют вид:
From: user1@I1
То: user2@I2
Cc: user3@A1
После этого определяется, что имеется еще один пользователь, и третий пользователь выбирается в качестве выбранного получателя. Кроме того, определяется, что третий пользователь содержит только ASCII-адрес электронной почты, и что сервером электронной почты для третьего пользователя является традиционный сервер 202. Соответственно, адреса электронной почты первого и второго пользователя, содержащие символы, не входящие в ASCII-алфавит, преобразуются. В частности, многоязычный адрес электронной почты первого пользователя преобразуется в первый преобразованный ASCII-адрес <преобразованный(user1@I1)>, и многоязычный адрес электронной почты второго пользователя преобразуется во второй преобразованный ASCII-адрес <преобразованный(user2@I2)>. Первый и второй преобразованные ASCII-адреса находятся в домене шлюза gw1.domain и могут быть обработаны в первом шлюзовом сервере 206 с использованием традиционной процедуры разрешения имен DNS. Полные преобразованные адреса электронной почты имеют вид: <преобразованный(user1@I1)@gw1.domain> и <преобразованный(user2@I2)@gw1.domain>. Сообщение электронной почты направляется третьему пользователю. Соответственно, заголовки сообщения электронной почты, принятого третьим пользователем, имеют вид:
From: преобразованного(user1@I1)@gw1.domain
То: преобразованному(user2@I2)@gw1.domain
Cc: user3@A1
Для этого сообщения электронной почты больше нет получателей, так что операция завершена, и сообщение передано.
Во втором примере второй пользователь направляет ответ другим пользователям. Заголовки сообщения электронной почты имеют вид:
From: user2@I2
То: user1@I1
Cc: user3@A1
Соответственно, второй пользователь передает сообщение электронной почты в связанный с ним второй шлюзовой сервер 206. Вторым шлюзовым сервером 206 может быть первый шлюзовой сервер 206, или же это может быть другой шлюзовой сервер. Программа маршрутизации получает сообщение электронной почты и выбирает первого пользователя в качестве выбранного получателя. Поскольку первый пользователь содержит многоязычный адрес электронной почты, сообщение направляется первому пользователю. Соответственно, заголовки сообщения электронной почты, принятого первым пользователем, имеют вид:
From: user2@I2
To: user1@I1
Cc: user3@A1
После этого определяется, что имеется еще один пользователь, и третий пользователь выбирается в качестве выбранного получателя. Далее, определяется, что третий пользователь содержит только ASCII-адрес электронной почты, и что сервером электронной почты для третьего пользователя является традиционный сервер 202. Соответственно, многоязычные адреса электронной почты первого и второго пользователя преобразуются. Для второго шлюза зарегистрирован домен gw2.domain. В частности, многоязычный адрес электронной почты первого пользователя преобразуется в третий ASCII-адрес <преобразованный2(user1@I1)@gw2.domain>, и многоязычный адрес электронной почты второго пользователя преобразуется в четвертый ASCII-адрес <преобразованный2(user2@I2)@gw2.domain>. Третий и четвертый преобразованные ASCII-адреса могут быть разрешены во второй шлюзовой сервер 206 с использованием традиционной процедуры разрешения имен DNS. После этого сообщение электронной почты направляется третьему пользователю. Соответственно, заголовки сообщения электронной почты, принятого третьим пользователем, имеют вид:
From: преобразованного2(user1@I1)@gw2.domain
To: преобразованному2(user2@I2)@gw2.domain
Cc: user3@A1
Затем определяется, что для этого сообщения электронной почты больше нет получателей, так что операция завершена, и сообщение передано.
В третьем примере третий пользователь отвечает первому и второму пользователям в ответ на сообщение электронной почты, полученное в первом примере. Заголовки сообщения электронной почты имеют вид:
From: user3@A1
То: преобразованному(user1@I1)@gw1.domain
Cc: преобразованному(user2@I2)@gw1.domain
Третий пользователь не связан со шлюзовым сервером 206. Как уже указывалось, поскольку третий пользователь связан с традиционным сервером 202, он будет передавать сообщения электронной почты только по адресам в формате ASCII. Соответственно, традиционный сервер 202 электронной почты использует стандартный протокол передачи сообщений для доставки сообщения по первому и второму преобразованным ASCII-адресам.
Для первого преобразованного адреса сообщение электронной почты доставляется на первый шлюзовой сервер 206, как это определяется стандартной процедурой разрешения доменных имен, поскольку домен первого преобразованного адреса электронной почты связан с первым шлюзовым сервером 206 в реестре DNS.
Сообщение электронной почты принимается первым шлюзовым сервером 206. Программа маршрутизации определяет, что первый преобразованный ASCII-адрес связан с первым шлюзовым сервером 206, и восстанавливает многоязычные адреса электронной почты для первого и второго преобразованных ASCII-адресов. Затем программа маршрутизации обеспечивает передачу сообщения первому пользователю. Соответственно, заголовки сообщения электронной почты, принятого первым пользователем, имеют вид:
From: user3@A1
To: user1@I1
Cc: user2@I1
Для второго преобразованного адреса сообщение электронной почты доставляется на первый шлюзовой сервер 206, как это определяется стандартной процедурой разрешения доменных имен, поскольку домен второго преобразованного ASCII-адреса электронной почты связан с первым шлюзовым сервером 206 в реестре DNS.
Сообщение электронной почты принимается первым шлюзовым сервером 206. Программа маршрутизации определяет, что второй преобразованный ASCII-адрес связан с первым шлюзовым сервером 206, и восстанавливает многоязычные адреса электронной почты для первого и второго преобразованных ASCII-адресов. Затем программа маршрутизации обеспечивает передачу сообщения второму пользователю. Соответственно, заголовки сообщения электронной почты, принятого вторым пользователем, имеют вид:
From: user3@A1
To: user1@I1
Cc: user2@I1
Если бы третий пользователь ответил второму пользователю (для сообщения, описанного во втором примере) вместо первого пользователя, передача осуществлялась бы аналогичным образом. Однако сообщение электронной почты было бы передано во второй шлюзовой сервер 206, а не в первый шлюзовой сервер 206, и заголовки сообщения, принятого первым и вторым пользователями, имели бы вид:
From: user3@A1
To: user1@I1
Cc: user2@I1
Соответственно, будет понятно, что настоящее изобретение улучшает возможности передачи сообщений электронной почты между многоязычными серверами 204 и традиционными серверами 202, когда сообщения содержат получателей с ASCII-адресами и многоязычными адресами электронной почты.
Вышеописанный шлюзовой сервер 206 может быть реализован как шлюз, через который могут проходить все сообщения электронной почты от многоязычных серверов 204. В альтернативном варианте шлюзовой сервер 206 может быть реализован по мере необходимости, когда определяется, что по меньшей мере один из получателей сообщения электронной почты использует традиционный сервер 202.
В одном из альтернативных вариантов пользователи электронной почты, имеющие многоязычный адрес, могут также иметь ASCII-адрес электронной почты. В этих случаях предпочтительным для шлюзового сервера 206 может быть использование существующего ASCII-адреса, который лучше воспринимается получателем по сравнению со сгенерированным адресом.
Для поддержки такой работы шлюзовой сервер 206 включает таблицу конфигурации адресов. В одном из столбцов таблицы конфигурации адресов указываются многоязычные адреса электронной почты, Во втором столбце таблицы конфигурации адресов указываются ASCII-адреса электронной почты, которые связаны с соответствующими многоязычными адресами. В рассматриваемом варианте таблица конфигурации адресов заполняется системным администратором.
Например, многоязычный адрес "" имеет соответствующий ASCII-адрес "Ernie Dainow<E.Dainow@afilias.info>", как указано в нижеприведенной Таблице 2. В рассматриваемом варианте для предотвращения конфликта между сконфигурированным ASCII-адресом и преобразованным ASCII-адресом процесс конфигурации ограничивает использование идентификаторов алгоритмов, таких как символы "*" и "#" в вышеописанных примерах, в сконфигурированных ASCII-адресах. То есть символы, используемые или зарезервированные для использования в качестве идентификаторов алгоритмов, не должны использоваться по меньшей мере в первом байте сконфигурированного ASCII-адреса электронной почты.
Для обеспечения указанного ограничения программу маршрутизации модифицируют следующим образом. На стадии 318, когда все адреса в заголовках сообщения электронной почты преобразованы, для каждого такого адреса проверяется таблица конфигурации адресов на наличие такого адреса. Если такого адреса нет в таблице конфигурации адресов, то программа маршрутизации при необходимости перекодирует этот адрес, как указано выше со ссылками на стадии 318a, 318b и 318c. Если адрес имеется в таблице конфигурации адресов, адрес в заголовке сообщения электронной почты заменяется соответствующим ASCII-адресом из таблицы конфигурации адресов. В зависимости от реализации программа маршрутизации может также преобразовать соответствующий ASCII-адрес электронной почты, если он не связан со шлюзовым сервером, как это уже было описано.
Кроме того, программа маршрутизации, описанная со ссылками на стадии 305 и 310, модифицируется следующим образом. Если адрес электронной почты связан со шлюзовым сервером 206, он осуществляет обратное преобразование адреса, как это уже было описано. Если адрес электронной почты, полученный в результате обратного преобразования, является ASCII-адресом, то программа маршрутизации просматривает столбец ASCII-адресов таблицы конфигурации адресов. Если такой ASCII-адрес найден, то используется соответствующий адрес из колонки многоязычных адресов. Если такой ASCII-адрес не найден, то используется адрес, полученный в результате обратного преобразования.
Если ASCII-адрес электронной почты не связан со шлюзовым сервером 206, то программа маршрутизации просматривает столбец ASCII-адресов таблицы конфигурации адресов. Если такой ASCII-адрес найден, то используется соответствующий адрес из колонки многоязычных адресов. Если такой ASCII-адрес не найден, то используется полученный ASCII-адрес.
В альтернативном варианте преобразованный ASCII-адрес может быть сохранен для соответствующего ASCII-адреса в таблице конфигурации адресов, если такая таблица была создана. Затем при последующих поисках соответствующий адрес электронной почты может быть пропущен, и преобразованный ASCII-адрес может быть считан непосредственно. Еще в одном альтернативном варианте таблица конфигурации адресов может также использоваться для сохранения преобразованных ASCII-адресов, полученных для адресов, символы которых не входят в ASCII-алфавит.
Как это будет понятно для специалиста в данной области техники, в вышеописанный способ могут быть внесены изменения без выхода за пределы объема изобретения. Например, хотя в рассмотренном варианте указывается, что шлюзовой сервер 206 преобразует остальную часть сообщения электронной почты, эта функция может быть выполнена другим сервером, таким как многоязычный сервер 204 или ему подобный. Также, хотя в описании делается ссылка на DNS в качестве средства управления электронной почтой, однако могут использоваться и другие средства управления почтой, такие как облегченный протокол доступа к каталогу (LDAP) или другие известные или фирменные способы.
Вышеописанный способ может быть реализован в форме машины, процесса или готового изделия с использованием стандартной технологии программирования для разработки программного обеспечения, программно-аппаратного обеспечения, аппаратных средств или их комбинаций.
Любые разработанные программы, содержащие машиночитаемый программный код, могут быть реализованы на одном или нескольких компьютерных носителях информации, таких как запоминающие устройства, или на передающих устройствах, в результате чего может быть получен компьютерный программный продукт или готовое изделие по настоящему изобретению. В этой связи термины "программное обеспечение" и "приложение", как они используются в настоящем описании, охватывают компьютерные программы, существующие (постоянно или временно) на любом компьютерном носителе информации, таком как запоминающее устройство, или в любом передающем устройстве.
Примеры запоминающих устройств включают жесткие диски, гибкие диски, оптические диски, магнитные ленты, полупроводниковые приборы памяти, такие как флэш-память, ОЗУ, ПЗУ, ППЗУ и им подобные. Примеры сетей включают (без ограничения) Интернет, интрасети, сети передачи данных по телефонным линиям, кабельным линиям, каналам сотовой связи, радиоканалам, спутниковым каналам и другим стационарным или мобильным сетевым системам/линиям связи.
Машина, на которой реализуется настоящее изобретение, может содержать один или несколько процессоров, включая ЦП, запоминающие устройства, линии связи, устройства передачи информации, серверы, устройства ввода/вывода или любые подкомпоненты или отдельные части одной или нескольких систем обработки информации, включая программное обеспечение, программно-аппаратное обеспечение, аппаратные средства или их комбинации, обеспечивающие осуществление изобретения, объем которого определяется его формулой.
Ознакомившись с вышеприведенным описанием, специалисты в данной области техники легко смогут соединить вышеописанное программное обеспечение с подходящими универсальными или специализированными вычислительными аппаратными средствами для получения вычислительной системы и/или вычислительных компонентов, осуществляющих изобретение, и для получения вычислительной системы и/или вычислительных компонентов для осуществления способа по настоящему изобретению.
Хотя в настоящем описании были рассмотрены предпочтительные варианты осуществления изобретения, специалистам в данной области техники будет понятно, что в эти варианты могут быть внесены различные изменения без выхода за пределы сущности изобретения и его объема, определяемого прилагаемой формулой.