Многоотраслевой научно-исследовательский

и опытно-производственный кооператив

Д Е М О С













Диалоговая Единая Мобильная

Операционная Система

ДЕМОС/P 2.2













Система управления электронной почтой

mailx














Москва

1991










Аннотация

Система управления электронной почтой mailx предос-
тавляет пользователю систем XENIX и MSDOS простую и
удобную среду для рассылки и получения почты. Она раз-
деляет приходящую почту на отдельные составляющие ее
сообщения и позволяет пользователю работать с ними в
любом порядке. Кроме того, она предусматривает набор
команд для манипуляций с сообщениями, похожий на набор
команд редактора ed. Программа mailx предлагает поль-
зователю простые возможности для облегчения составления
исходящих сообщений, а также предусматривает возмож-
ность определения имен групп и рассылки сообщений всей
группе пользователей. Наконец, mailx может посылать и
получать сообщения по таким сетям, как UUCP и ARPA.

В этом документе описано, как использовать программу
mailx для рассылки и получения почты. Читателю необяза-
тельно знать другие системы почтовой службы, но он дол-
жен быть знаком с командным языком системы XENIX, текс-
товым редактором и некоторыми другими основными коман-
дами системы XENIX. Для получения более полной инфор-
мации на эти темы можно обратиться к документу "Руко-
водство программиста XENIX". Данный документ описывает
версию mailx для системы XENIX, пользователю MSDOS
рекомендуется по мере чтения обращатся к главе "Особен-
ности и отличия системы mailx для MSDOS".

1. Введение

Система рассылки почты в XENIX обрабатывает почтовые
сообщения следующим образом: почтовая система получает
для Вас сообщения от других людей и собирает их в
файле, который называется Вашим системным почтовым ящи-
ком. Если при входе в систему какие-нибудь сообщения
ожидают в Вашем системном почтовом ящике, система пре-
дупреждает Вас об этом. Если Вы используете csh, он
будет Вам сообщать о приходе новой почты, если только
ему известно местоположение Вашего системного почтового
ящика. В XENIX Ваш системный почтовый ящик находится в
каталоге /usr/spool/mail, в файле с Вашим регистрацион-
ным именем. Если Ваше имя anton, Вы можете заставить
csh информировать Вас о поступлении новой почты, вклю-
чив в файл .cshrc команду

set mail=/usr/spool/mail/anton

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






- 1 -







2. Вызов программы mailx

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

% mailx kiska

Затем надо ввести текст сообщения. Дойдя до конца сооб-
щения, введите символ (CTRL/D) в начале новой строки.
При этом mailx напечатает КОНЕЦ ПЕРЕДАЧИ, и Вы верне-
тесь в Shell. Когда пользователь, которому Вы послали
почту, войдет в систему, он получит сообщение

Вам пришла почта.
или
You have mail.


Если, составляя письмо, Вы решили, что отправлять
его не стоит, можно отменить отправление письма, введя
CTRL/C. После первого ввода CTRL/C mailx пишет

(Прерывание -- чтобы уничтожить письмо, нуж

После повторного ввода CTRL/C mailx сохранит неокончен-
ное письмо в файле dead.letter в Вашем регистрационном
каталоге и отменит отправление письма. Если же Вы уже
отправили письмо, больше нет возможности отменить его,
поэтому будьте внимательны.

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

Если Вы хотите послать одно и то же сообщение нес-
кольким людям, можно включить их регистрационные имена
в командную строку. Так,

% mailx anton rita vasya
Subject: напоминание
В пятницу в 9.00 заседание кафедры. Не опаздывайте!
CTRL/D
КОНЕЦ ПЕРЕДАЧИ
%

посылает сообщение пользователям anton, rita и vasya.

Если, войдя в систему, Вы получили сообщение

Вам пришла почта.
или
You have mail.

прочесть эту почту можно командой
- 2 -







% mailx

Программа mailx для начала выдаст номер своей версии и
дату, а затем распечатает ожидаемые Вами сообщения.
После этого она выдает приглашение и ждет Вашей
команды. Сообщения пронумерованы, начиная с единицы.
Обращаться к сообщению можно, указывая его номер. Прог-
рамма mailx помнит, какие сообщения получены уже после
того, как Вы в последний раз просматривали почту (new)
и какие сообщения уже прочитаны Вами (read). В списке
сообщений перед новыми сообщениями стоит N, а старые,
но не прочитанные сообщения отмечены буквой U. Прог-
рамма mailx помещает в заголовок сообщения поле Status,
чтобы пометить старые/новые и прочитанные/непрочитанные
сообщения.

Для того, чтобы найти определенное сообщение, поль-
зуйтесь командой type (можно просто t). Например, Вы
получили следующие сообщения:

"/usr/spool/mail/rita": 2 сообщения, 2 новых
>N 1 root авг 23 19:09 7/70 напоминание
N 2 anton авг 21 14:49 11/650
&

Первое сообщение можно посмотреть командой

type 1

На эту команду mailx напечатает первое сообщение, нап-
ример:

Сообщение 1:
From root Wed Aug 23 19:09:24 1990
Subject: напоминание
Status: R

В пятницу в 9.00 заседание кафедры. Не опаздывайте!


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

t

для его просмотра. Более того, напечатать сообщение
можно, указав его номер. Так, по команде

1

будет напечатано первое сообщение.

Обычно бывает удобно просматривать сообщения из поч-
тового ящика по порядку, одно за другим. В программе
- 3 -







mailx перейти к следующему сообщению можно, нажав кла-
вишу ВК. Для просмотра первого сообщения достаточно
ввести ВК вместо первой команды.

Если после просмотра сообщения Вы решили немедленно
отправить ответ на него, можете это сделать при помощи
команды reply. Аргументом для команды reply, так же,
как и для type, является номер сообщения. По этой
команде mailx начинает письмо, адресованное тому, от
кого получено это сообщение. После этого можно вводить
текст ответа, завершив его, как обычно, CTRL/D в начале
строки. mailx напечатает КОНЕЦ ПЕРЕДАЧИ, а затем
выдаст приглашение в знак того, что можно вводить новую
команду. В нашем примере, если по получении первого
сообщения Вы решили ответить на него, введите команду

Reply

(с большой буквы!). На это mailx выдаст:

To: root
Subject: Re: напоминание

и будет ожидать ввода текста письма. Теперь Вы работа-
ете в режиме составления письма, описанном выше, и
mailx воспримет как текст письма весь ввод до CTRL/D.
Заметим, что mailx берет предметный заголовок из исход-
ного письма. Это полезное свойство, так как сохранив-
шийся заголовок позволяет сразу понять, что речь идет
об одном и том же. Если в заголовке письма есть другие
поля, содержащаяся в них информация также используется.
Например, если в поле заголовка To: кроме Вас есть еще
несколько человек, mailx пошлет Ваш ответ еще и этим
людям. Точно так же, если в заголовке исходного письма
есть поле Cc: (вторые экземпляры), mailx посылает ответ
и их адресатам. При этом mailx не будет посылать ответ
Вам, даже если Ваше имя встречается в поле To: или Cc:
за исключением тех случаев, когда это будет специально
указано. Подробнее см. раздел "Рассылка почты".

После окончания ввода сообщения Ваш диалог с mailx
будет выглядеть так:

& Reply
To: root
Subject: напоминание

Благодарю за заботу, но... 9.00 - не слишком ли рано?
CTRL/D
КОНЕЦ ПЕРЕДАЧИ
&


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

- 4 -







Иногда, получив сообщение, адресованное группе поль-
зователей, Вы хотите послать ответ только его автору.
Команда reply с маленькой буквы r тоже посылает ответ
на сообщение, но посылает его только автору исходного
письма.

Если Вы видите, что сообщение относится совсем не к
Вам или вопрос находится в компетенции другого чело-
века, Вы можете просто переслать ему это письмо коман-
дой forward (естественно, "копия" письма останется у
Вас). Команде forward можно указывать несколько адре-
сатов - в этом случае каждому будет отправлена копия
сообщения; например:

& type
Сообщение 8:
From doctor Fri Aug 24 05:07:19 1990
Subject: вопрос века
Status: R

Сколько будет 7x8 ?

& forward alex mike
&
Если нужно что-нибудь изменить в сообщении или добавить
свои соображения, и т.п., то Вам придется воспользоваться
командой mail (см. далее главу "Рассылка почты").


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

& mail tasha
Интересно, будет ли руководство пользователя по yacc
готово к пятнице?
CTRL/D
КОНЕЦ ПЕРЕДАЧИ
&

Команду mail можно сокращать как m.

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

delete 1

указывает программе mailx, что не надо сохранять сооб-
щение 1 (от root) в файле mbox. Кроме того, mailx
больше не будет печатать уничтоженное сообщение.
- 5 -







Команда delete сокращается как d.

Выйти из mailx можно, набрав команду quit. Команда
quit сокращается как q.

mailx можно настроить на нужный Вам стиль работы при
помощи команды установки переменных set. Команда set
имеет две формы, в зависимости от того, устанавливается
логическая или значащая переменная. Логическая пере-
менная может быть установлена или не установлена. Нап-
ример, переменная ask информирует mailx о том, что каж-
дый раз при составлении письма Вы хотите получать приг-
лашение для ввода предметного поля заголовка. Для
установки переменной ask напишите:

set ask


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

Значащие переменные - это значения, используемые
программой mailx для настройки Вашей среды. Например,
переменная SHELL, которая информирует mailx, каким
интерпретатором командного языка Вы пользуетесь, уста-
навливается так:

set SHELL=/bin/csh

Обратите внимание, что в строке SHELL=/bin/csh не раз-
решены пробелы. Полный список переменных программы
mailx приведен в разделе 5.

Еще одна важная переменная - это crt. Если сообще-
ние достаточно длинное и скорость вывода на терминал
достаточно высока, то текст на экране пролетает так
быстро, что Вы не успеваете его прочитать. Использова-
ние переменной crt заставляет mailx после выдачи каж-
дого экрана текста ждать подтверждения, что все уже
прочитано. Например, для постраничного вывода сообще-
ний, которые целиком не помещаются на экране терминала
с 24 строками, можно указать:

set crt=24

Для продолжения выдачи сообщения нужно нажать возврат
каретки (клавишу Enter или Return).

Еще одна возможность настройки mailx - это псевдо-
нимы. Псевдоним - это имя, которое заменяет одно или
несколько имен реальных пользователей. Почта, отправ-
ленная с помощью mailx на такое имя, на самом деле рас-
сылается списку пользователей, которые с ним связаны.
- 6 -







Например, можно определить псевдоним для группы пользо-
вателей и посылать почту всей группе на одно имя. В
программе mailx псевдоним определяется командой alias.
Предположим, имена пользователей, входящих в группу, -
anton, aleks, dmitry и rita. Определим для них псевдо-
ним kwadrat с помощью такой команды:

alias kwadrat anton aleks dmitry rita

Можно пользоваться командой alias, если у пользователя
неудобное регистрационное имя. Например, если пользова-
тель Вася имеет почтовый адрес mew!vasya%pc.home можно
воспользоваться командой

alias vasya cat!vasya%pc.home

и посылать почту на краткое имя vasya.

Хотя команды alias и set упрощают пользование прог-
раммой mailx, у них есть один недостаток: при каждом
входе в mailx их надо вводить заново. Чтобы удобнее
было ими пользоваться, при каждом вызове программа
mailx просматривает два файла. Сначала она читает обще-
системный файл /usr/lib/Mail.rc, а затем личный файл
пользователя .mailrc, который находится в его регистра-
ционном каталоге. Общесистемный файл поддерживается
администратором системы и содержит команды set, приме-
нимые ко всем пользователям. В файле .mailrc пользова-
тель установливает удобные ему значения переменных и
определяет индивидуальные псевдонимы. Например, файл
.mailrc может выглядеть так:

set ask nosave SHELL=/bin/csh

Таким образом, можно установить несколько переменных
одной командой set. Команда nosave описана в разделе
"Дополнительные возможности".

Псевдонимы могут также обрабатываться на общесистем-
ном уровне сетевой доставки почты sendmail. Эти псев-
донимы хранятся в файле /usr/lib/aliases и доступны
всем пользователям системы. Строки файла
/usr/lib/aliases имеют вид

псевдоним: имя1, имя2, имя3

где псевдоним - это псевдоним списка адресатов, а имяi
- имена членов этого списка. Длинный список можно про-
должить на следующей строке, поставив в начале строки
пробел или табуляцию. Помните, что после редактирования
файла /usr/lib/aliases надо выполнить команду системы
newaliases, так как система доставки почты пользуется
файлом, который создает команда newaliases.

Мы видели, что программа mailx может быть вызвана с
аргументами, при этом аргументы командной строки - это
имена людей, которым надо послать сообщение, или без
аргументов - для получения почты. Указав в командной
- 7 -







строке ключ -f можно заставить mailx читать сообщения
не из Вашего системного почтового ящика, а из другого
файла. Например, если Вы храните некоторые сообщения в
файле letters, можно прочитать их при помощи программы
mailx таким способом:

% mailx -f letters

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

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

% mailx -f


Обычно сообщения, прочитанные командой type, сохра-
няются в файле mbox в Вашем регистрационном каталоге в
том случае, если Вы выходите из mailx по команде quit,
которая описана выше. Если Вы хотите хранить сообщения
в своем системном почтовом ящике, это можно сделать
командой preserve Команде preserve передается в
качестве аргументов список номеров сообщений, так же,
как команде type. Команду preserve можно сокращать как
pre.

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

mbox 2

второе сообщение (от пользователя anton) после выполне-
ния команды quit будет помещено в файл mbox. Команда
mbox позволяет также направлять сообщения в файл mbox в
том случае, если у Вас установлена переменная hold (см.
выше). Команду mbox можно сокращать как mb.

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

% mailx


Если Вам надо быстро выйти из mailx, не изменяя
содержимого Вашего системного почтового ящика и файла
mbox, пользуйтесь командой x (сокращение от exit),
- 8 -







которая немедленно завершит работу mailx, не внося
никаких изменений в эти файлы.

Если же Вы хотите выполнить команду системы, не
выходя из mailx, введите команду, поставив перед ней
восклицательный знак, так же, как в текстовом редакторе
ed. Так, например,

! date

выдаст текущую дату.

Наконец, команда help выдает краткий список команд
программы mailx, называя команды сокращенно по первым
буквам.

3. Обслуживание архивных файлов

Программа mailx предусматривает простые средства для
обработки групп сообщений в архивных файлах. Их описа-
нию посвящен этот раздел.

Для работы с архивным файлом Вы должны указать прог-
рамме mailx , где Вы хотите его хранить. Каждый архив
сообщений будет отдельным файлом. По соглашению все
Ваши архивные файлы хранятся в одном каталоге, выбран-
ном Вами для этой цели. Чтобы указать программе mailx,
где находится каталог с Вашими архивными файлами,
вставьте в свой файл .mailrc строку вида

set folder=letters

Если, как в данном примере, имя каталога начинается не
с `/', mailx будет считать, что каталог с Вашими архив-
ными файлами следует искать, начиная с Вашего регистра-
ционного каталога. Так, если Ваш каталог /usr/person,
приведенный пример укажет программе mailx, что Ваш
архивный каталог - /usr/person/letters.

Там, где требуется имя файла, можно указывать имя
архивного файла, поставив перед ним `+'. Например,
чтобы поместить сообщение в архивный файл при помощи
команды save, напишите:

save +classwork

и текущее сообщение сохранится в архивном файле class-
work. Если архивного файла classwork не существует, он
будет создан. Обратите внимание, что сообщения, сохра-
ненные при помощи команды save, автоматически удаляются
из системного почтового ящика.

Чтобы создать копию сообщения в архивном файле, не
удаляя его из системного почтового ящика, пользуйтесь
командой copy, которая во всем остальном совпадает с
командой save. Например,

copy +classwork
- 9 -







копирует текущее сообщение в архивный файл classwork и
оставляет копию в Вашем системном почтовом ящике.

Команда folder используется для указания программе
mailx архивного файла. Например, по команде

folder +classwork

mailx прочтет содержимое архивного файла classwork.
Все команды, которые Вы можете выполнять над содержимым
Вашего системного почтового ящика, применимы и к архив-
ному файлу, в том числе команды type, delete и reply.
Чтобы узнать, какой архивный файл Вы сейчас редактиру-
ете, скажите просто

folder


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

Для чтения одного из архивных файлов программу mailx
можно запускать с ключом -f, как описано в разделе 2.
Например:

% mailx -f +classwork

заставит mailx читать Ваш архивный файл classwork, не
заглядывая в системный почтовый ящик.

4. Рассылка почты

4.1. Управляющие последовательности

В процессе написания письма иногда необходимо выз-
вать текстовый редактор на незаконченное письмо, напе-
чатать его, выполнить команду shell или воспользоваться
еще какой-нибудь дополнительной функцией. В mailx для
этого служат управляющие последовательности, которые
состоят из `~' (тильды) в начале строки и одного сим-
вола, который указывает, какую функцию следует выпол-
нить. Например, чтобы напечатать ту часть сообщения,
которую Вы уже набрали, введите:

~p

и на экран выведется пунктирная линия, затем имя адре-
сата, а затем набранный Вами текст. Так как для отмены
письма программа mailx требует последовательного двук-
ратного ввода символа CTRL/C, для отмены ~p или другой
управляющей последовательности можно ввести CTRL/C один
раз, при этом письмо не отменяется.

Если Вам не нравится письмо в том виде, как оно
есть, можете вызвать на него текстовый редактор при
помощи управляющей последовательности

~e
- 10 -







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

(продолжайте)

после чего можно продолжать набирать текст, который
допишется к Вашему сообщению, или завершить письмо по
CTRL/D. Программа mailx предусматривает вызов стандарт-
ного редактора. Если он Вас не устраивает, переустано-
вите значащую переменную EDITOR, скажем, так:

set EDITOR=/bin/red


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

~v