Примеры сетевых топологий

         

Электронная почта


Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru

Электронная почта - наиболее популярный и быстро развивающийся вид общения. Широко используются протоколы электронной почты UUCP (unix-to-unix copy protocol, RFC-976) и SMTP (simple mail transfer protocol; RFC-821, -822, -1351, -1352). Один из протоколов (RFC-822) определяет формат почтовых сообщений, второй (RFC-821) управляет их пересылкой. Имея механизмы промежуточного хранения почты (spooling) и механизмы повышения надежности доставки, протокол smtp базируется на TCP-протоколе в качестве транспортного и допускает использование различных транспортных сред. Он может доставлять сообщения даже в сети, не поддерживающие протоколы TCP/IP. Протокол SMTP обеспечивает как транспортировку сообщений одному получателю, так и размножение нескольких копий сообщения для передачи по разным адресам. Обычно в любом узле Интернет имеется почтовый сервер (MX), который принимает все сообщения и устанавливает их в очередь. Далее производится раскладка сообщений по почтовым ящикам ЭВМ пользователей. Если какая-то ЭВМ не включена, сервер попытается доставить почту позднее (например, через 30 мин). После заданного числа неудачных попыток или по истечении определенного времени (> 4-5 дней) сообщение может быть утрачено. При этом отправитель должен получить уведомление об этом. Над SMTP располагается почтовая служба конкретных вычислительных систем (например, POP3(RFC-1460), IMAP (RFC-2060), sendmail (UNIX), pine, elm (надстройка над sendmail), mush, mh и т.д.). Схема пересылки электронных почтовых сообщений (RFC-821) показана на рис. 4.5.10.1.

Существует множество реализаций электронной почты. Имеются версии практически для всех ЭВМ, операционных систем и сред.

Адреса электронной почты уникальны и однозначно определяют адресата, обладая иногда даже некоторой избыточностью. Символьные адреса электронной почты вполне соответствуют IP-нотации. Электронный почтовый адрес содержит две части, местную и доменную, например, vanja.ivanov@itep.ru (vanya.ivanov - местная).
Доменная часть обычно совпадает с символьным IP-именем домена.

Если между отправителем и приемником имеется непосредственная связь, адрес имеет вид имя_пользователя@имя_ЭВМ. Когда приемник находится на ЭВМ, которая не поддерживает SMTP и передача происходит через промежуточный почтовый сервер, то адрес может иметь вид, например, ivanov%имя_удаленной_ЭВМ@имя_сервера (благодаря быстрому развитию Интернет в мире и даже в России такая схема используется сейчас крайне редко). Местная часть адреса определяется пользователем и часто совпадет с его именем или фамилией. Электронный адрес несравненно компактнее традиционных почтовых адресов, которые мы пишем на конвертах. Да и сами возможности электронной почты несравненно богаче почты традиционной. По этой причине можно утверждать, что традиционная почта постепенно будет в ближайшем будущем вытеснена ее электронным аналогом. Схема взаимодействия различных объектов электронной почты показана на рис. 4.5.10.1



Рис. 4.5.10.1. Схема пересылки электронных почтовых сообщений

Со временем можно ожидать, что электронные адреса станут универсальными, но это произойдет не скоро. Для этого нужно чтобы транспорт и другие службы научились работать с такими адресами. Электронные (IP) адреса удобнее для ЭВМ, чем традиционные, а принимая во внимание, что применение вычислительной техники повсеместно, вывод напрашивается сам собой. То что удобно для ЭВМ, удобно в конечном итоге для всех.

Любое почтовое сообщение можно разделить на три части: "конверт" (RFC-821), заголовки (RFC-822) и собственно текст. Конверт используется почтовым сервером и содержит две команды (тексты после двоеточия приведены в качестве примера):

MAIL From: <semenov@cl.itep.ru>
RCPT To: <king_penguin@antarctic.edu>

Существует девять полей заголовка, используемые почтовой программой пользователя: Received, From, To, Date, Subject, Message-Id, X-Phone, X-Mailer, Reply-To. Каждое из этих полей содержит имя, за которым после двоеточия следует его значение.


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



При вызове почты (командой mail или mailx) на экране будет распечатан служебный текст, который зависит от конкретной реализации mail, но практически непременным атрибутом любой версии будет являться полное число полученных вами почтовых сообщений (если таковые были). Это могут быть и сообщения, оставленные вами там после предшествующего чтения почты. Непрочитанные вами сообщения так или иначе помечаются (например, символом U на левом поле строки-описания сообщения или N для новых). Далее следует аннотация сообщения, по одной строке на сообщение. Аннотация обычно содержит номер сообщения (нумерация всегда начинается с 1), имя и адрес отправителя, дата и время отправки. После этого следуют (в некоторых реализациях) два числа, разделенных косой чертой ("/"). Они характеризуют размер сообщения в строках и полное число символов. В заключение следует, если еще есть место, предмет сообщения (Subject:). Ниже приведен пример текста такого аннотационного сообщения (SUN):

Mail version SMI 4.1-OWV3 Mon Sep 23 07:17:24 PDT 1991 Type ? for help.
"/usr/spool/mail/semenov": 4 messages 4 new
>N 1 mw@isds.Duke.EDU Wed Aug 23 14:15 92/4350
N 2 hochreit@informatik.tu-muenchen.de Wed Aug 23 23:54 71/2767 TR announcement: Long Sho
N 3 Voz@dice.ucl.ac.be Thu Aug 24 07:08 501/21416 ELENA Classification data
N 4 S.Renals@dcs.shef.ac.uk Thu Aug 24 07:08 58/2837 AbbotDemo: Continuous Spe
&

Не ленитесь заполнять поле Subject, иначе при большой почте ваш адресат может пропустить ваше сообщение. Среди наиболее значимых для пользователя полей заголовка можно выделить: адрес и имя отправителя (From:), дата отправки (Date:), адрес получателя (To:), адреса и время прохождения промежуточных узлов, списки лиц (Cc:), кому кроме вас послано это сообщение, предмет сообщения (Subject:), некоторая служебная информация и т.д. Число строк заголовка зависит от программы, реализующей функцию почты и от параметров, определенных пользователем, например, путем задания значений системных переменных.



Практически все пакеты электронной почты имеют возможность переадресовать сообщение другому адресату (Forward); отправить ответ (Replay) пославшему вам сообщение человеку (в этом случае в заголовке появится поле Replay-To); стереть сообщение не читая; в случае смены места работы или длительной командировки установить постоянную переадресацию (на ЭВМ SUN для этого нужно указать адрес нового почтового ящика в файле .forward); записать сообщение в файл (Save имя_файла) или отпечатать его на принтере.

Команда обращение к почтовому серверу обычно имеет вид:

mail местный_адрес@имя_домена, (все что записано после команды mail, является электронным адресом адресата). Например, если вы посылаете сообщение автору, то команда приобретает вид: mail semenov@itep.ru.

Использование промежуточного почтового сервера (mail gateway) несколько усложнит запись электронного адреса (это бывает нужно, например, когда кто-то вне Internet хочет послать сообщение клиенту Internet):

semenov%cl.itep.ru@имя_промежуточного_почтового_сервера

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

идентификатор_пользователя%имя_домена
или
идентификатор_пользователя:имя_домена.

При возникновении проблем рекомендуется обращаться к администратору вашей локальной сети.

Если вы любопытны и хотите посмотреть, какие служебные команды выдаются при отправке электронного сообщения, воспользуйтесь командой (в качестве адресата (xxxxxxxx) выберите своего друга, коллегу или знакомого, которому вам нужно что-то сообщить):

mail -v xxxxxxxx@cernvm.cern.ch (обращение к почтовой программе пользователя)
Subject: Test it.(пользовательская программа предлагает ввести тему почтового сообщения)
Privet...(текст почтового сообщения)
.(команда отправки сообщения)


xxxxxxxx@cernvm.cern.ch...


Connecting to dxmint.cern.ch (TCP)...
220 dxmint.cern. ch Sendmail ready at Thu, 6 Jul 1995 07:43:27 +200
>>> HELO itep.ru
250 dxmint.cern.ch Hello itep.ru, pleased to meet you
>>> MAIL From:<xxxxxxx@itep.ru>
250 <xxxxxxx@itep.ru>... Sender ok
>>> RCPT To:<xxxxxxxx@crnvma.cern.ch>
250 <xxxxxxxx@crnvma.cern.ch>... Recipient ok
>>> DATA
354 Enter mail, end with "." on line by itself
>>> . (команда завершения сообщения и его отправки адресату)
250 Ok
>>> QUIT
221 dxmint.cern.ch closing connection
xxxxxxxx@crnvma.cern.ch... Sent (сессия завершена)

Именно модификация команды mail -v обеспечивает вывод сообщений, отпечатанных ниже строки "Privet...". Для посылки почтового сообщения используется только пять команд: HELO, MAIL, RCPT, DATA и QUIT. Строчки, начинающиеся с >>>, являются командами, которые посланы SMTP-клиентом (xxxxxxx@ns.itep.ru). Строки же, которые начинаются с трехзначной цифры, представляют собой коды-отклики SMTP-сервера (в данном случае он имеет имя dxmint.cern.ch), тексты же, следующие после кода-отклика необязательны и могут отсутствовать. Процедура отправки сообщения начинается с того, что клиент выполняет операцию active open для TCP-порта 25. Далее клиент идентифицирует себя командой HELO, выдавая в качестве параметра адрес своего домена. Команда MAIL идентифицирует отправителя, команда RCPT - получателя. Число команд RCPT всегда равно числу получателей. Команда DATA служит для передачи сообщения, а QUIT - для завершения этой процедуры и ликвидации TCP-канала. Посмотрим как выглядит посланное выше сообщение после того, как я его переадресовал себе по адресу semenov@itep.ru:

From xxxxxxxx@crnvma.cern.ch Sat Jul 29 12:15:13 1995
Received: from cearn.cern.ch by ns.itep.ru with SMTP id AA25862
(5.67a8/IDA-1.5 for <SEMENOV@NS.ITEP.RU>); Sat, 29 Jul 1995 12:15:08 +0300
Received: from CERNVM.CERN.CH by CEARN.cern.ch (IBM VM SMTP V2R2)
with BSMTP id 3114; Sat, 29 Jul 95 10:07:15 SET


Received: from CERNVM.cern.ch (NJE origin@CERNVM) by CERNVM.CERN.CH (LMail
1.2a/1.8a) with BSMTP id 4132; Sat, 29 Jul 1995 10:11:12 +0200
Resent-Date: Sat, 29 Jul 95 10:10:30 SET
Resent-From: xxxxxxxx@crnvma.cern.ch
Resent-To: SEMENOV@NS.ITEP.RU
Received: from CERNVM (NJE origin SMTPIBM@CERNVM) by CERNVM.CERN.CH
Lmail V1.2a/1.8a) with BSMTP id 4125; Sat, 29 Jul 1995 10:08:44 +0200
Received: from dxmint.cern.ch by CERNVM.CERN.CH (IBM VM SMTP V2R2) with TCP;
Sat, 29 Jul 95 10:08:43 SET
Received: by ns.itep.ru id AA25665
(5.67a8/IDA-1.5 for xxxxxxxx@cernvm.cern.ch); Sat, 29 Jul 1995 12:12:26 +0300
Date: Sat, 29 Jul 1995 12:12:26 +0300
From: Yuri Semenov <semenov>
Message-Id: <199507290912.AA25665@ns.itep.ru>
To: xxxxxxxx@crnvma.cern.ch
Subject: Test it.
Status: R
--------------------------Original message---------------
Privet...

Текст, выделенный курсивом, представляет собой то, что пришло в CERN. "Накладные расходы" даже здесь значительны, ведь собственно текст состоит из одного слова, следующего после надписи "Original message". Переадресация же увеличивает издержки еще больше.

При описании DNS говорилось о существовании MX-записей, которые являются одной из разновидностей ресурсных рекордов. MX-записи могут использоваться для доставки почтовых сообщений адресатам, не имеющим прямого доступа к Интернет (RFC-974). Еще одним применением MX-записей является предоставление альтернативного получателя почтовых сообщений в случае, когда ЭВМ-получатель вышла из строя. Для выяснение конкретной конфигурации почтовых серверов можно воспользоваться командой host:

host -a -v -t mx cernvm.cern.ch (команда выданная с терминала, ниже следует отклик на эту команду)

Trying domain "itep.ru"
rcode = 3 (Non-existent domain), ancount=0
Trying null domain
rcode = 0 (Success), ancount=3
The following answer is not authoritative:
cernvm.cern.ch30450INCNAMEcrnvma.cern.ch
crnvma.cern.ch86042INMX20 dxmint.cern.ch
crnvma.cern.ch86042INMX40 relay.EU.net




For authoritative answers, see:
cern.ch198821INNSdxmon.cern.ch
cern.ch198821INNSns.eu.net
cern.ch198821INNSsunic.sunet.se
cern.ch198821INNSscsnms.switch.ch


Additional information:
dxmint.cern.ch31455INA128.141.1.113
relay.EU.net8411INA192.16.202.2
dxmon.cern.ch371619INA192.65.185.10
ns.eu.net38326INA192.16.202.11
sunic.sunet.se331044INA192.36.148.18
sunic.sunet.se331044INA192.36.125.2
scsnms.switch.ch28536INA130.59.10.30
scsnms.switch.ch28536INA130.59.1.30


..................................

MX-записи с наименьшим предпочтением ( код предпочтения следует сразу за MX) указывают, что сначала следует попытаться переслать сообщение ЭВМ dxmint.cern.ch.

Следующий уровень предпочтения соответствует адресу relay.EU.net. Здесь же вы найдете CNAME-запись (канонические имена DNS). Кроме списка альтернативных почтовых серверов эта команда выдает информацию о списке серверов имен (DNS-серверов). В приведенном примере их четыре, они помечены символами NS и обслуживают домен cern.ch (см. первую колонку). В нижней части полученной таблицы вы можете найти IP-адреса приведенных MX- и NS-серверов (помечены символом A). Пояснения расшифровки содержимого других колонок можно найти выше, в описании DNS-системы (раздел 1.13 ).

При подготовке текста сообщения вы можете сначала воспользоваться традиционным редактором. Текст будет тогда размещен в файле и при отправке вы можете использовать, например, команду send имя_файла (в системе VMS) или командой GET ввести содержимое файла в текст сообщения (с помощью команды ~r имя_файла в UNIX). Чаще текст сообщения печатается в реальном масштабе времени, непосредственно перед отправкой. В этом случае сигналом конца ввода будет Ctrl-D или символ "." (точка) в начале очередной строки (или Ctrl-Z в VAX/VMS). Если по какой-либо причине вы передумали и не хотите отправлять уже набранное сообщение, процедуру можно прервать, нажав Ctrl-C.

При необходимости посылки одного и того же текста нескольким пользователям можно воспользоваться командой:



mail (или mailx) адрес_1 адрес_2 и т.д.

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

На последней строке будет напечатан символ &, который указывает, что система ждет ввода команды (просмотр почты). Уход из mail производится по команде q (quit). В ответ на & вы можете ввести следующие команды (набор команд и их синтаксис может варьироваться от ЭВМ к ЭВМ и от реализации к реализации, см. табл. 4.5.10.1).

При работе в Unix в процессе печатания текста сообщения вы можете выдать почтовой программе определенные команды. Такие команды начинаются с символа "~" (тильда). Ниже приведен список таких команд, текст набранный курсивом, означает, что вместо него должны быть впечатаны имена, адреса и т.д. Многоточие показывает, что может быть введено более одного имени, адреса и пр.

Таблица 4.5.10.1. Внутренние команды почтовой программы UNIX
Субкоманда MAILОписание
~?Отображает весь набор описаний ~-команд
~b адрес...

Добавляет адрес в строку "Blind copy" (слепая копия "Bcc:").
~c адрес...Добавляет адрес(а) в строку "Copy" или "Cc:".
~dЧитает содержимое файла dead.letter
~eВызывает редактор текста
~f сообщенияСчитывает сообщения
~hРедактирует все строки заголовка.
~m сообщенияСчитывает сообщения, сдвигает указатель вправо на одну табуляцию
~pОтображает (печатает) текущее сообщение
~qУход из почты (Quit), эквивалентно двойному Ctrl-C
~r файлСчитывает содержимое указанного файла в текст сообщения
~s subjectИзменяет содержимое строки Subject
~t адрес...Добавляет адрес в строку "To:".
~vВызывает альтернативный редактор (то же, что и ~e).
~w файлЗаписывает текущее сообщение в файл
~! команда

Выполняет команду Shell и возвращается к сообщению
~| командаПропускает текущее сообщение через фильтр
<


/p> Если вы напечатаете ~f (без указания номера сообщения), в текст текущего сообщения будет внесено содержимое сообщения, которое вы читали последним. Стандартной формой использования ~f является, например, ~f 5, где 5 - номер сообщения. ~m делает тоже самое, но каждая строка сдвигается на один tab вправо.

В UNIX многие команды имеют разные функции, если они напечатаны строчными или прописными буквами, смотри, например, команды r и R в таблице 4.5.10.2. Не безразлично в UNIX и применение строчных и прописных символов в именах файлов, что бывает существенно, в частности, при работе с FTP-сервером.

Важной командой является SET, которая позволяет изменять системные переменные. Формат использования:

SET переменная=значение (Например, SET EDITOR=/bin/edMe=/bin/eda).

Уже сегодня можно переслать поздравительную цветную открытку вашим знакомым. Возможна по такой схеме пересылка и звуковых писем, лишь бы у вашего адресата была звуковая карта в ЭВМ. Ведутся работы и над протоколами видео-писем (NETBLT).

Тот факт, что электронная почта является наиболее популярным видом сервиса, делает ее объектом непрерывных доработок и усовершенствований. Так в документах RFC-1425, -1426, -1427 предлагается вариант расширения возможностей SMTP (ESMTP). Эта модификация сохраняет совместимость со старыми версиями. Клиент, желающий воспользоваться расширенными возможностями, посылает команду EHLO вместо HELO. Если сервер поддерживает ESMTP, он выдаст код-отклик 250. Этот вид отклика является многострочным, что позволяет серверу сообщить о видах сервиса, которые он поддерживает. Например:

250-8BITMIME (RFC-1426)
250-EXPN (RFC-821)
250-SIZE (RFC-1427)
250-HELP (RFC-821)
250-XADR

Таблица 4.5.10.2. Команды, выполняемые почтовой программой
КомандаОписание
СокращениеПолное имя
?-Отображение списка исполняемых команд
!-Выполнение одной команды Shell
+-Отобразить следующее сообщение
RETURN-Отобразить следующее сообщение
--Отобразить предшествующее сообщение
число-Отобразить сообщение с номером "число".
ddeleteСтереть текущее сообщение
dp-Стереть текущее сообщение и отобразить следующее
eeditВызвать редактор для работы с сообщениями
hheadersОтобразить список заголовков сообщений
llistВыдать список имен всех доступных команд
mmailПослать сообщение по указанному адресу или адресам
n-Отобразить следующее сообщение и распечатать его
pprintОтобразить (отпечатать) сообщения
prepreserveСохранить сообщения в системном почтовом ящике
qquitЗавершить работу с почтой
rreplayОтветить отправителю и всем прочим получателям
RReplayОтветить только отправителю
ssaveСохранить сообщения в указанном файле или в mbox, если имя файла не указано
shshellВременно уйти из почты и вернуться в shell
ttypeТоже что и print
totopОтобразить несколько верхних строчек сообщения
uundeleteВосстановить ранее стертые сообщения
v-Редактирование сообщения с помощью экранного редактора
wwriteТоже что и s, но без записи заголовка
xexitВыйти из почты без спасения внесенных изменений
z-Отобразить следующий набор заголовков
z--Отобразить предшествовавший набор заголовков сообщений




Ключевое слово 8BITMIME говорит о том, что клиент может добавить ключевое слово BODY к команде MAIL FROM и определить тип символов, используемых в сообщении (ASCII или 8-битные). Ключевое слово XADR указывает на то, что любые ключевые слова, начинающиеся с X, относятся к местным модификациям SMTP. Документ RFC-1522 определяет способ, как можно включить не ASCII-символы в заголовок почтового сообщения. Например:

=?набор_символов ?кодировка ?закодированный_текст ?=

набор_символов - спецификация набора символов: us-ascii или ISO-8859-X, где X - одиночная цифра, например ISO-8859-1. Поле кодировка содержит один символ, характеризующий метод кодировки. В настоящее время описаны два метода:

1. Q - набор печатных символов; символы, коды которых имеют неравный нулю 8-ой бит, отображается тремя символами: знаком равенства (=), за которым следует два шестнадцатеричных числа (например =AD). Так пробел будет иметь кодировку =20.

2. B - 64-символьный набор (Base64, латинские буквы, 10 цифр, а также символы + и /). Набор кодов Base64 приведен в таблице:

Таблица 4.5.10.3. Коды Base64


Код
символа
(6 бит)


ASCII
символ


Код
символа
(6 бит)


ASCII
символ


Код
символа
(6 бит)


ASCII
символ


Код
символа
(6 бит)


ASCII
символ
0A10Q20g30w
1B11R21h31x
2C12S22i32y
3D13T23j33z
4E14U24k340
5F15V25l351
6G16W26m362
7H17X27n373
8I18Y28o384
9J19Z29p395
AK1Aa2Aq3A6
BL1Bb2Br3B7
CM1Cc2Cs3C8
DN1Dd2Dt3D9
EO1Ee2Eu3E+
FP1Ff2Fv3F/


Интересным дополнением к традиционной электронной почте является ее расширение MIME (Multipurpose Internet Mail Extensions, RFC-1521). MIME не требует каких-либо переделок в почтовых серверах, это расширение определяет пять новых полей-заголовков (расширение RFC-822):
MIME-Version:(версия MIME, сейчас 1.0)
Content-Type:(тип содержимого, см. таблицу на рис. 4.5.10.4)
Content-Transfer-Encoding:(кодирование содержимого)
Content-ID:(идентификатор содержимого)
Content-Description:(описание содержимого)




Поле заголовка Content-Transfer- Encoding используется пять видов кодировки (третий вид полей в приведенном выше списке):


  1. 7-бит (NVT ASCII, по умолчанию);


  2. Набор печатных символов (полезен, когда только небольшая часть символов использует 8-ой бит);


  3. 64-символьный набор (Base64 см. выше в таблице 4.5.10.3);


  4. 8-битный набор символов, включающий псевдографику, с использованием построчного представления;


  5. Двоичная кодировка (8-битное представление без построчного представления).


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

Таблица 4.5.10.4. Типы и субтипы почтовых сообщений.
Тип почтового сообщения

Субтип
почтового сообщения
Описание
textplainНеформатированный текст
richtextТекст с простым форматированием, таким как курсив, жирный, с подчеркиванием и т.д.
enrichedУпрощение, прояснение и усовершенствование richtext
multipartmixedСообщение содержит несколько частей, которые обрабатываются последовательно
parallelСообщение содержит несколько частей, обрабатываемых параллельно
digestКраткое содержание почтового сообщения
alternativeСообщение содержит несколько частей с идентичным семантическим содержимым
messageRFC822Содержимое является почтовым сообщением в стандарте RFC-822
partialСодержимое является фрагментом почтового сообщения
external-bodyСодержимое является указателем на действительный текст сообщения
applicationoctet-streamПроизвольная двоичная информация
postscriptPostScript программа
imagejpegФормат ISO 10918.
gifФормат обмена CompuServe (Graphic Interchange Format).
audiobasicФормат ISO 11172




Текст электронного сообщения не передает всех оттенков мыслей и эмоций отправителя, что может вызвать неверное восприятие. Для решения этой проблемы хотя бы частично используются символьные обозначения эмоций. Таблица таких обозначений приведена ниже. Чтобы легче воспринять и запомнить их, посмотрите на страницу, где напечатана таблица, справа.
СимволЗначение
:-)Улыбка
:-DСмех
;-)Подмигивание
:-(Неудовольствие
:-<Огорчение
8-)Удивление
:-oО, нет!
:-IБезразличие
:-#Вынужденная улыбка
:-]Ухмылка
:-{)Улыбка с усами
{:-)Улыбка с париком
:-XМой рот на замке
=:-)Панк-рокер
=:-(Настоящий панк-рокер никогда не улыбается
%^)Название для этой улыбки читателям предлагается придумать самостоятельно


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


Содержание раздела