На главную | Поиск
Вы находитесь в Хранилище файлов Белорусской цифровой библиотеки

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

Многоотраслевой научно-исследовательский и опытно-производственный кооператив Д Е М О С Диалоговая Единая Мобильная Операционная Система ДЕМОС/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 ~v работает так же, как и ~e, но всегда вызывает экран- ный редактор. Стандартный экранный редактор определя- ется программой mailx. Если он Вас не устраивает, ука- жите полное имя нужного Вам редактора как значение переменной VISUAL. Бывает полезно иметь возможность включать содержимое некоторого файла в текст Вашего письма. На этот случай есть управляющая последовательность ~r файл которая добавляет указанный файл к тексту текущего сообщения. Если файл не существует или не читается, mailx выдает ошибку. Если файл успешно прочитан, на экран выдается число строк и символов, добавленных к сообщению, после чего можно продолжать ввод текста. Имя файла может содержать метасимволы shell, такие, как `*' и `?', они будут расшифрованы в соответствии с установ- ленным интерпретатором командного языка. Как особый случай ~r, управляющая последовательность ~d читает файл dead.letter в Вашем регистрационном ката- логе. Это удобно, так как mailx копирует в этот файл текст письма, которое Вы отменяете при помощи CTRL/C. Есть возможность передавать бинарные (нетекстовые) файлы с помощью системы mailx. Для этого служит управ- ляющая последовательность ~u [исходный_файл] получаемый_файл - 11 - здесь, если имя исходного совпадает с именем получае- мого, можно указывать только одно имя. После выполнения этой последовательности в текущее сообщение вставляется текстовый файл, перекодированный из указанного бинарного алгоритмом uuencode. В таком виде файл уже можно посылать, не опасаясь потерять 8-й бит или передать не те байты. После приема этого файла можно воспользоваться встроенной в mailx или внешней командой uudecode для преобразования сообщения обратно в бинарн Чтобы сохранить текст Вашего письма в файле, поль- зуйтесь управляющей последовательностью ~w файл mailx напечатает число строк и символов, записанных в файл, после чего можно продолжать ввод текста сообще- ния. В имени файла можно пользоваться метасимволами shell, так же, как и в случае с ~r. Если Вы посылаете почту, находясь в командном режиме mailx, Вы можете включить в текст составляемого письма полученное Вами сообщение, пользуясь управляющей после- довательностью ~m. Например, ~m 4 вставит сообщение 4 в текущее сообщение, сдвинув его на табуляцию вправо. Можно указывать любое неудаленное сообщение или список сообщений. Можно также вставлять сообщение при помощи последовательности ~f, без сдвига на табуляцию (обычно так и делают). Кроме того, для совместимости с другими версиями почтовой службы вместо ~f допускается использование последовательности ~M. Кроме этого, есть последовательность ~>>, которая встав- ляет сообщение с заданным номером, добавляя перед каж- дой строкой символ '>>'. Если в процессе составления письма Вы решили доба- вить еще несколько человек к списку адресатов, можно воспользоваться управляющей последовательностью ~t name1 name2 ... Можно называть одновременно несколько адресатов. Пом- ните, что пользователи, ранее включенные в список адре- сатов, тоже получат это письмо. Удалять имена из списка ~t не умеет. Можно вставлять предметный заголовок при помощи управляющей последовательности ~s новый_заголовок которая заменит любой бывший ранее предметный заголовок - 12 - на новый_заголовок Если есть предметный заголовок, он помещается в начале сообщения в поле Subject:. Посмот- реть, как будет выглядеть письмо, можно при помощи ~p. Иногда предпочтительно указывать некоторых людей не как прямых адресатов письма, а как адресатов вторых экземпляров. Управляющая последовательность ~c имя1 имя2 ... добавляет названных адресатов к списку Cc: и работает аналогично ~t. Теперь можно снова выполнить ~p, чтобы посмотреть общий вид письма. Адресаты письма составляют поле To: заголовка, пред- метный заголовок - поле Subject: заголовка, а получа- тели вторых экземпляров - поле Cc: заголовка. Если Вы хотите изменить эти поля таким образом, что этого нельзя сделать с помощью ~t, ~s и ~c, можно воспользо- ваться управляющей последовательностью ~h которая напишет To: и текущий список адресатов, а затем установит курсор в конец строки. Если Вы будете вводить обычные символы, они будут дописываться к текущему списку адресатов. После ввода символа новой строки программа mailx перейдет к полю Subject:, над которым можно выполнять такие же действия. Следующий символ новой строки оцуществит переход к редактированию поля Cc: по тем же правилам. После этого по символу новой строки Вы перейдете к дописыванию текста Вашего сообще- ния. Чтобы посмотреть текст полей заголовка и основного письма в том виде, как они выглядят сейчас, можно вос- пользоваться ~p. Кроме полей To:, Subject: и Cc: при помощи команды ~h можно заполнить поле Bcc: (третьи копии). Адреса- там, указанным в поле Bcc: тоже будет послана копия сообщения, но, в отличие от адресатов из поля Cc: по команде Reply им не будет посылаться ответ. Для временного выхода в shell используется управляю- щая последовательность ~! команда которая выполняет команду и возвращает Вас в режим сос- тавления письма, не меняя текста письма. Если же Вам нужно пропустить текст Вашего письма через команду- фильтр, воспользуйтесь управляющей последовательностью ~| команда которая фильтрует сообщение через команду и использует вывод как новый текст письма. Если эта команда не выводит ничего, то mailx заключает, что произошла ошибка и возвращает старую версию сообщения. В - 13 - качестве фильтра часто используется команда fmt, пред- назначенная для форматирования писем. Для временного возврата в командный режим mailx можно пользоваться управляющей последовательностью ~: команда_mailx Это особенно полезно для повторного просмотра письма, на которое Вы отвечаете, например: ~: t Этим также можно пользоваться для установки переменных и переопределения псевдонимов. Если Вам хочется отправить письмо, содержащее строку, начинающуюся с тильды, удвойте ее. Например: ~~Эта строка начинается с тильды. посылает строку ~Эта строка начинается с тильды. Наконец, управляющая последовательность ~? выдает краткий список возможных управляющих последова- тельностей. На некоторых терминалах (обычно без нижнего регистра) трудно напечатать тильду. Программа mailx позволяет поменять управляющий символ, установив пере- менную escape. Например, установим правую квадратную скобку вместо тильды: set escape=] Теперь, если понадобится послать строку с правой квад- ратной скобкой в начале, ее придется удвоить, так же как и в случае с тильдой. Изменение управляющего сим- вола отменяет специальное значение символа `~'. 4.2. Доступ к сетям В этом разделе описано, как посылать почту пользова- телям на других машинах. Вызов, посланный на простое регистрационное имя пользователя, отправляет почту пользователю на этой же машине. Если Ваш адресат работает на машине, подключенной к сети UUCP, Вам необходимо знать список машин, через которые должно пройти Ваше письмо, пока доберется до него. Так, если его машина напрямую связана с Вашей, послать почту можно, используя такой синтаксис: - 14 - машина!имя где машина - имя его машины, а имя - его регистрацион- ное имя. Если же Ваше письмо должно сначала пройти через промежуточную машину, синтаксис будет такой: промежуточная_машина!машина!имя и так далее. Особенностью UUCP является то, что ника- кой узел сети не имеет полной карты всех систем (если только кто-нибудь не составил ее сам для удобства). Ряд сетей использует адреса в формате Internet: польз@машина.д1.д2... где польз - регистрационное имя пользователя на удален- ной машине, машина - имя машины, а поля д1...дn обра- зуют имя домена, определяющего логическую принадлеж- ность машины к какой-либо организации, подразделению, стране и т.д. Например, сетевой адрес avg@avg386.hq.demos.USSR.COM означает, что адресат avg работает на машине avg386, расположенной в московском отделении (hq) ДЕМОСа (demos), CCCР (USSR). Последнее поле обозначает тип организации: COM - коммерческие организации GOV - гос. учреждения ORG - бесприбыльные организации EDU - учебные заведения MIL - военные предприятия Таким образом, каждая машина в мире должна иметь свой уникальный адрес, построенный по иерархическому прин- ципу. Способ построения Internet-овского адреса никак не связан с физической конфигурацией линий связи. Вообще говоря, почтовая служба не различает большие и маленькие буквы в Internet-овском адресе; тем не менее лучше их указывать точно для совместимости с другими почтовыми службами. Для удобства пользования допуска- ется сокращение адресов путем отбрасывания частей имени с конца в тех случаях, когда это обеспечивает распозна- вание адреса машины. (Обычно можно отбрасывать часть имени получателя, совпадающую с частью полного имени Вашей машины). Internet-овский адрес в отличие от адреса UUCP обычно не содержит явного маршрута для передачи сообще- ний. Если нужно построить комбинированный адрес для пересылки сообщения через две сети, используется следу- ющее правило: если сначала сообщение нужно переслать по сети с адресом типа Internet, а затем по UUCP, то адрес строится следующим образом: b!c!d!u@a - 15 - где a - Internet-овское имя первой машины, b, c, d - имена машин, доступных через UUCP и u - имя пользова- теля. Если же сообщение сначала должно передаваться по UUCP, то разделитель @ заменяется на %, например: a!b!c!u%d где a, b, c - имена машин, доступных через UUCP, d - Internet-овское имя последней машины и u - имя пользо- вателя. Когда Вы пользуетесь командой Reply для ответа на письмо, возникает проблема, как сформировать имена пользователей в списках To: и Cc: относительно данной машины. Если исходное письмо послано Вам с локальной машины, этой проблемы не существует; ситуация сложнее, если письмо пришло с удаленной машины. Программа mailx использует эвристику для построения корректного имени каждого пользователя относительно локальной машины. Так, когда Вы говорите Reply для ответа на письмо, имена в списках To: и Cc: несколько изменятся. 4.3. Специальные адресаты Как описано выше, можно посылать сообщения по именам пользователей и по псевдонимам. Существует также воз- можность посылать почту непосредственно в файл, исполь- зуя некоторые соглашения. Если имя адресата содержит символ `/' или начинается со знака `+', то считается, что это полное имя файла, в который следует послать сообщение. Если файл уже существует, сообщение дописы- вается к его концу. Если нужно указать файл в текущем каталоге (т. е. знака `/' в его имени не требуется), можно начать его имя с `./'. Так, для посылки почты в файл memo в текущем каталоге можно дать команду: % mailx ./memo Если имя файла начинается со знака `+', оно расширяется в полное имя архивного файла в Вашем архивном каталоге. Эта возможность используется для разнообразных целей, таких, как ведение журнала и запись почты, посланной какой-либо группе пользователей. Второе можно делать автоматически, включив полное имя файла для записи в команду alias для этой группы. Например, по команде alias duet dmitry rita /usr/duet/mail_rec_ вся почта, отправленная по псевдониму duet, будет сох- раняться в файле /usr/duet/mail_record как только будет послана данной группе пользователей. Этот файл можно просмотреть, используя mailx с ключем -f. - 16 - 5. Дополнительные возможности В этом разделе описаны некоторые дополнительные команды, которые используются для прочтения почты, установки переменных и обработки списка сообщений. 5.1. Списки сообщений Некоторым командам mailx передается в качестве аргу- мента список сообщений. Кроме команд type и delete, описанных в разделе 2, есть команда from, которая пока- зывает заголовки сообщений из списка, который ей пере- дается. Команда from полезна в сочетании с некоторыми возможностями по обработке списка сообщений, описанными ниже. Список сообщений состоит из номеров сообщений, диа- пазонов и имен, разделенных пробелами или табуляциями. Номера сообщений могут быть либо десятичными числами, которые непосредственно указывают на сообщение, либо одним из специальных символов `^', `.' или `$' для ука- зания первого подходящего, текущего или последнего под- ходящего сообщения соответственно. Подходящее здесь означает неудаленное для большинства команд и удаленное для команды undelete. Диапазон сообщений состоит из номеров двух сообщений (в том виде, как описано в предыдущем параграфе), раз- деленных знаком `-' (минус). Так, например, напечатать первые четыре сообщения можно так: type 1-4 а напечатать все сообщения, начиная с текущего и до последнего, так: type .-$ Имя - это имя пользователя. Имена пользователей, заданные в списке сообщений, собираются все вместе, и каждое сообщение проверяется на предмет, было ли оно послано одним из названных пользователей. Если список состоит только из имен пользователей, то выбираются все сообщения, посланные этими пользователями, которые являются подходящими (в том же смысле). Так, чтобы напечатать все сообщения, посланные Вам пользователем root, выполните type root Коротко Вы можете сказать просто `*' для получения всех подходящих (в том же смысле) сообщений. Так, type * печатает все неудаленные сообщения, - 17 - delete * удаляет все неудаленные сообщения, а undelete * восстанавливает все удаленные сообщения. Можно проверять сообщения на присутствие в заголовке определенного слова при помощи `/'. Например, для печати заголовков всех сообщений, содержащих слово PAS- CAL, выполните: from /pascal Обратите внимание, что поиск слова в заголовке игнори- рует разницу между верхним и нижним регистрами. 5.2. Список команд В этом разделе описаны все команды программы mailx, которыми можно пользоваться при получении почты. ! Используется перед командой shell, которую надо выполнить. - Команда `-' переходит к предыдущему сообщению и печатает его. Этой команде можно передавать как аргумент десятичное число n, в этом случае проис- ходит переход к n-ному сообщению и оно выдается. Print то же, что и print, но при печати выдает все поля заголовка. См. также print и ignore. reply Формирует ответ на одно или более сообщений. Ответ (или ответы, в случае нескольких сообщений) будет послан только тому человеку, от которого получено сообщение (соответственно, группе людей, пославших сообщения, на которые Вы отвечаете). Можно добавить адресатов, пользуясь управляющими последовательностями ~t и ~c. Предметный заголо- вок ответа формируется из предметного заголовка исходного письма путем добавления к началу строки слова Re:. Если заголовок исходного письма содер- жит поле Reply-to, то ответ будет послан только адресатам, перечисленным в поле Reply-to. При вводе текста сообщения используются те же соглаше- ния, что и в команде mail. Команда reply особенно полезна для ответов на сообщения, посланные боль- шой группе пользователей, если Вы хотите послать письмо именно автору сообщения. Type то же, что и команда Print. forward Пересылает текущее сообщение всем пользователям, - 18 - указанным в списке аргументов команды. Содержимое сообщения никак не изменяется, а в заголовок допи- сываются поля вида Resent-From:, идентифицируюшие того, кто переслал сообщение. alias Определяет имя, подставляемое вместо списка других имен. Это полезно, если Вы посылаете сообщения некоторой группе людей и хотите избежать переписы- вания всех имен каждый раз. Например, alias project lena dima vlad anna создает псевдоним project, который расширяется в четыре имени lena, dima, vlad и anna. alternates Если Вы зарегистрированы на нескольких машинах, удобнее пользоваться /usr/lib/aliases на всех этих машинах, вместо того, чтобы направлять всю свою почту в одно место. Команда alternates использу- ется, чтобы сообщить mailx, что все эти адреса действительно Ваши. Команда alternates получает в качестве аргумента список имен пользователей и напоминает, что все они в действительности принад- лежат Вам. Когда Вы отвечаете на письмо, пришед- шее на одно из альтернативных имен, при помощи команды reply, программа mailx не будет посылать копию сообщения по другим альтернативным именам. Если команда alternates вызывается без аргументов, она выдает текущее множество альтернативных имен. Команда alternates обычно используется в файле .mailrc. chdir Команда chdir позволяет изменить текущий каталог. Она вызывается с одним аргументом, который воспри- нимается как полное имя каталога, в который сле- дует перейти. Если аргумент не задан, chdir пере- ходит в Ваш регистрационный каталог. copy Команда copy делает то же, что и save, только сообщения, скопированные этой командой, при окон- чании работы не удаляются из почтового ящика. delete Удаляет список сообщений. Удаленные сообщения можно восстановить командой undelete. dt,dp Команда dt (или dp) удаляет текущее и печатает следующее сообщение. Она полезна для быстрого просмотра почты. edit Для редактирования отдельных сообщений при помощи текстового редактора предусмотрена команда edit. Команда edit получает такой же список сообщений, как и команда type, и обрабатывает их, переписывая - 19 - в файл MessageN, N - номер сообщения, которое сле- дует отредактировать, и запускает на этот файл текстовый редактор. Когда, отредактировав собще- ние, Вы выходите из редактора, программа mailx читает сообщение обратно и удаляет файл. Сокра- щенная форма команды edit - e. else Отмечает конец части then оператора if и начало той части, которую следует выполнить, если условие оператора if неверно. endif Помечает конец оператора if. exit Выход из mailx без изменения системного почтового ящика или файла, из которого Вы читали. Так, если Вы случайно удалили несколько сообщений, можно воспользоваться командой exit, чтобы не запортить Ваш почтовый файл. Сокращенная форма команды exit - x. file То же, что и folder. folders Показывает имена архивных файлов из Вашего архив- ного каталога. folder Команда folder переключается на новый почтовый или архивный файл. Вызванная без аргумента, эта команда говорит Вам, какой файл сейчас читается. Если Вы передаете ей аргумент, она указывает, какие изменения (такие, как удаление сообщений) сделаны в текущем файле и читает новый файл. В имени файла приняты следующие соглашения: Имя Значение __________________________________________________ # читать предыдущий файл % Ваш системный почтовый ящик %имя системный почтовый ящик пользователя имя & Ваш файл ~/mbox +файл Ваш архивный файл from Команда from печатает заголовки всех указанных сообщений; так, команда from polina выдаст заголовки всех сообщений, полученных от пользователя polina. headers Когда Вы вызываете программу mailx для чтения почты, она печатает заголовки всех полученных - 20 - сообщений. В заголовках написано, от кого получено сообщение, когда оно отправлено, сколько в нем строк, и поле Subject: у всех сообщений, у которых оно есть. Кроме того, mailx добавляет в заголовки всех сообщений, на которые выполнялась команда preserve, букву P. Сообщения, которые были сохра- нены или записаны, помечаются знаком `*'. Нако- нец, удаленные сообщения не печатаются вовсе. Если Вам надо перепечатать текущий список заголов- ков сообщений, можно это сделать командой headers. Команда headers (так же, как и начальная выдача заголовков сообщений) показывает только первые несколько заголовков. Число показываемых заголов- ков зависит от скорости Вашего терминала. Его можно изменить, указав нужное число переменной screen. Программа mailx помнит, с какой частью сообщений (окном) она сейчас работает. Для пере- хода к следующему или предыдущему окну использу- ется команда z. Можно переместить значение теку- щего окна mailx непосредственно на определенное сообщение, используя, например, команду headers 40 Команда headers сокращается как h. headline Эта команда позволяет добавлять новые поля в заго- ловок отправляемого сообщения; так, например, после команды headline Organization Wild Hacker's Club, Moscow в заголовок каждого сообщения будет добавляться строка Organization: Wild Hacker's Club, Moscow В строке можно использовать специальные конструк- ции $$ - символ `$', $a - дата в формате сети ARPA, $d - дата в формате системы Unix, $i - уникальный номер исходящего сообщения, $r - реальное имя пользователя (из файла /etc/passwd или переменной realname). $h - официальное имя машины в Internet, $u - регистрационное имя пользователя. Если команде headline указано только имя поля, то она удалит это поле из набора вставляемых в заго- ловки исходящих сообщений. Команда headline без аргументов печатает список всех дополнительных полей заголовка. Эта команда обычно используется только в стартовых файлах /usr/lib/Mail.rc и .mailrc. - 21 - help Выдает краткое описание команд mailx. hold Сохраняет сообщения из полученного списка в сис- темном почтовом ящике вместо того, чтобы помещать их в файл mbox в Вашем регистрационном каталоге. Если Вы установите логическую переменную hold, это будет делаться по умолчанию. if Команды из Вашего файла .mailrc могут выполняться в зависимости от того, посылаете Вы или получаете почту. Это делается по команде if. Например, можно сказать: if receive команды... endif Также можно пользоваться частью else: if send команды... else команды... endif Обратите внимание, что возможны только два усло- вия: receive и send. ignore Добавляет перечисленные поля заголовков сообщений к списку игнорируемых полей. Поля из этого списка не выводятся на терминал при печати сообщения. Это позволяет опустить печать некоторых полей, генери- руемых автоматически, например, Received, которые обычно никого не интересуют. Команды Type и Print позволяют просматривать сообщение целиком, включая игнорируемые поля. Специальное имя поля -from можно использовать если надо игнорировать служеб- ную строку From ... в начале сообщения. Если команда ignore вызывается без аргументов, она выдает текущее множество игнорируемых полей. Аль- тернативоне имя этой команды - discard. list Выдает список действующих команд программы mailx. local задает список локальных имен Вашей машины. Эта команда полезна если машина известна под несколь- кими именами. Имена могут быть полными именами машины или именами доменов. Первое имя в списке должно быть официальным именем машины. Имена из этого списка mailx использует для того, чтобы определять являются ли имена локальными на этой машине; например: local viista.public.USSR frob.steel.USS frobvax.cbs.USSR r.public.USSR - 22 - Из этого списка можно сделать вывод, что имена vasya@viista.public nina@frob.steel и bibi@r относятся к пользователем на текущей машине. Команда local обычно не используется пользовате- лями непосредственно т.к. она описывает конфигура- цию сети, ее обычно используют в файле /usr/lib/Mail.rc. lpr Команда lpr печатает список сообщений, используя значение переменной LPR (если задано). mail Посылает почту одному или нескольким пользовате- лям. Если установлена переменная ask, mailx выдает приглашение для ввода предметного заголовка сообщения. После этого можно вводить текст сооб- щения, пользуясь управляющими последовательнос- тями, как описано в разделе 4, для редактирования, печати или модификации сообщения. Когда сообщение готово, для отправления его введите CTRL/D в начале строки или (если установлена переменная dot) точку на отдельной строке. Для отмены письма введите два символа прерывания (по умолчанию CTRL/C) подряд или воспользуйтесь управляющей пос- ледовательностью ~q. mbox Показывает список сообщений, которые будут запи- саны в файл mbox в Вашем регистрационном каталоге при выходе из программы mailx. Это делается авто- матически, если у Вас не установлена переменная hold. next Команда next переходит к следующему сообщению и печатает его. Если задан список сообщений, next переходит к первому из них и печатает его. Так, next root переходит к следующему сообщению, полученному от пользователя root и выводит его. Команду next для краткости можно заменять символом новой строки, то есть можно перейти к сообщению, задав его номер или один из "магических" символов `^', `.' или `$'. Так, команда . выдает текущее сообщение, а команда 4 печатает сообщение 4, как описано выше. - 23 - preserve То же, что и hold. Помечает список сообщений для сохранения в системном почтовом ящике при выходе из mailx. quit Завершает работу программы mailx и приводит в соответствие файл, архивный файл или системный почтовый ящик, который Вы читали. Сообщения, которые Вы прочитали, помечаются как read, а сооб- щения, существовавшие до начала сеанса, помечаются как old. Если Вы редактировали Ваш системный поч- товый ящик и у Вас установлена переменная hold, все неудаленные, несохраненные и не записанные в mbox сообщения возвращаются в Ваш системный почто- вый ящик. Если Вы редактировали Ваш системный почтовый ящик и переменная hold не установлена, все сообщения, каторые не были удалены, сохранены или возвращены в системный почтовый ящик, помеща- ются в файл mbox в Вашем регистрационном каталоге. Reply Ответ посылается тому, кто послал Вам сообщение, на которое Вы отвечаете, а также всем людям, полу- чившим исходное сообщение, кроме Вас. Можно доба- вить адресатов, пользуясь управляющими последова- тельностями ~t и ~c. Предметный заголовок Вашего ответа формируется из предметного заголовка исход- ного письма путем постановки перед ним слова Re:, если только его там уже не было. Если исходное письмо содержит в заголовке поле Reply-to, ответ будет отправлен только адресату, указанному в Reply-to. При вводе письма действительны те же соглашения, что и в команде mail. save Часто бывает полезно сохранять в одном файле сооб- щения на похожие темы. Эту возможность дает команда save. Команде save передается несколько номеров сообщений и имя файла, в котором их надо сохранить. Сообщения дописываются к концу назван- ного файла, что позволяет хранить несколько сооб- щений в одном файле в том порядке, в каком их туда поместили. Команда save сокращенно записывается как s. В приведенном выше примере команду save можно использовать так: s 1 2 tuitionmail Сохраненные сообщения не записываются автомати- чески в файл mbox при выходе и не выбираются командой next, если это особо не оговорено. set Устанавливает переменную или значение переменной. Используется для облегчения работы с mailx. В разделе 5.3 содержится список переменных. Перемен- ные бывают логические (в этом случае они или уста- новлены, или не установлены) и значащие. Чтобы логическая переменная option была установлена, надо выполнить команду: - 24 - set переменная Присвоить значащей переменной option значение value можно так: set переменная=значение Несколько переменных можно определить одной коман- дой set. shell Команда shell вызывает интерпретатор командного языка. При выходе из интерпретатора командного языка Вы вернетесь в mailx. Интерпретатор команд- ного языка, вызываемый по умолчанию, определяется программой mailx; его можно изменить, установив значащую переменную SHELL: set SHELL=/bin/csh source Команда source читает команды mailx из файла. Это полезно, если Вы изменили файл .mailrc и хотите его перезапустить. top Команда top получает список сообщений и печатает первые пять строк каждого из этих сообщений. Сок- ращенная форма - to. Если хотите, можете изменить число выводимых top строк, задав его переменной toplines. Для дисплея лучше задавать set toplines=10 type,print Команда type (или print) печатает список сообщений на экране терминала. Если переменная crt имеет некоторое значение и число строк в просматриваемом сообщении достигает числа, определенного crt, сообщение будет выдаваться по crt-1 строк, после чего mailx будет ожидать ввода символа новой строки. Вместо встроенной подпрограммы постранич- ной выдачи можно использовать любую внешнюю прог- рамму, если установить переменную PAGER; например, если была выполнена команда set PAGER=/usr/bin/more то все длинные сообщения будут пропускаться через программу постраничной выдачи more. undelete Команда undelete восстанавливает исходный статус сообщения, которое было удалено. Восстанавливать можно только удаленные сообщения. Сокращенная форма команды - u. - 25 - unset Действие, обратное установке логической или знача- щей переменной. uudecode Команда применяет алгоритм uudecode к указанному списку сообщений, раскодируя файлы из текстового представления обратно в бинарное (см. кодирующую управляющую последовательность ~u). Таким образом, с помощью mailx можно передавать и принимать бинарные (нетекстовые) файлы. visual Иногда необходимо вызвать один из двух возможных редакторов, в зависимости от типа используемого терминала. Для вызова экранного редактора исполь- зуется команда visual. В остальном команда visual не отличается от команды edit. Обе команды edit и visual по умолчанию вызывают определенные редак- торы. Чтобы вызывать другие редакторы, нужно присвоить переменным EDITOR и VISUAL имена стан- дартного и экранного редакторов соответственно. Можно, например, сделать так: set EDITOR=/bin/ed VISUAL=/bin/eda write Команда save записывает сообщение в файл все цели- ком, включая заголовок. Если Вам нужно записать только сам текст сообщения, воспользуйтесь коман- дой write. У команды write такой же синтаксис, как и у save. Сокращенная форма команды - w. Так, записать текст второго сообщения можно так: w 2 file.c Как видно из примера, команда write может приме- няться для пересылки текстов программ по почте. z Программа mailx показывает заголовки сообщений окнами, как было сказано в описании команды headers. Чтобы заставить mailx переключиться на следующее окно, надо выполнить команду z+ Аналогично, переход к предыдущему окну делается так: z- Переход к первому и последнему окнам сообщений производится командами z1 и z$ соответственно. - 26 - @headers, @reply, @Reply, @from Эти команды аналогичны соотвествующим командам без @, но используют в качестве адреса автора сообще- ния не абсолютный адрес из поля From: заголовка сообщения, а автоматически собранный обратный путь из служебной строки начала сообщения. Эти команды можно использовать если система доставки почты оказывается не в состоянии найти маршрут для отп- равки сообщения по абсолютному адресу. (Доставка сообщения по абсолютному адресу обычно быстрее, а использование относительного обратного пути позво- ляет разрешить проблемы при доставке ответа в сложных сетях). 5.3. Переменные В этом документе уже приводились примеры логических и значащих переменных. В этом разделе описаны все пере- менные в алфавитном порядке. Внимание: не забывайте, что имя переменной может состоять либо только из боль- ших, либо только из маленьких букв. EDITOR Значащая переменная EDITOR определяет полное имя текстового редактора, который вызывается командой edit и управляющей последовательностью `~e'. Если переменная не определена, вызывается стандартный редактор. LPR Значащая переменная, содержащая имя и ключи прог- раммы, вызывающейся для печати сообщений командой lpr. По умолчанию имеет значение lpr. PAGER Значащая переменная PAGER содержит полное имя программы постраничной выдачи, которая будет использоваться вместо встроенной подпрограммы постраничной выдачи. SHELL Значащая переменная SHELL задает имя Вашего интерпретатора командного языка, который использу- ется командой `!' и управляющей последователь- ностью `~!'. Кроме того, интерпретатор командного языка нужен для расширения имен файлов, содержащих такие метасимволы, как `*' или `?'. VISUAL Значащая переменная VISUAL определяет имя экран- ного редактора для команды visual и управляющей последовательности ~v. Если переменная не опреде- лена, используется стандартный экранный редактор. append Логическая переменная append означает, что сообще- ния, записанные в mbox, должны дописываться к концу, а не к началу файла. Обычно mailx помещает сообщения в mbox в том же порядке, в каком система - 27 - помещает их в Ваш системный почтовый ящик. Если установить переменную append, сообщения всегда будут дописываться в конец файла mbox. В любом случае дописывание будет выполняться быстрее. ask Логическая переменная ask заставляет mailx выда- вать приглашение для ввода предметного заголовка при составлении любого письма. Если Вы в ответ на это приглашение просто нажимаете клавишу Return, предметного поля в заголовке письма не будет. askcc Логическая переменная askcc устанавливается, если Вы хотите получать приглашение для ввода дополни- тельных адресатов вторых экземпляров по окончании ввода каждого сообщения. Нажатие клавиши ВК озна- чает, что Вы согласны с текущим списком. autoprint Логическая переменная autoprint заставляет команду delete работать как dp (после удаления письма сле- дующее будет печататься автоматически). Это полезно для быстрого просмотра и уничтожения сооб- щений из почтового ящика. autosign Логическая переменная autosign задает режим, при котором в конец каждого посланного сообщения добавляется файл $HOME/.signature, в котором обычно находится адрес и телефон отправителя. debug Логическая переменная debug предназначена для печати отладочной информации. Установка этой переменной равносильна использованию ключа -d в командной строке. dot Логическая переменная dot, если она установлена, заставляет mailx воспринимать точку, стоящую в отдельной строке, как знак окончания письма, кото- рое Вы составляете. escape Если Вы хотите переназначить управляющий символ, используемый при составлении сообщений, можете установить значащую переменную escape. Во внима- ние принимается только первый символ переменной escape, а если этот символ надо поставить первым в строке Вашего сообщения, он удваивается. Если Вы поменяли управляющий символ, тильда `~' теряет свое специальное значение, и его больше не надо удваивать, ставя в начале строки. folder Имя каталога для записи архивных файлов. Если имя начинается со знака `/', программа mailx считает, что это полное имя каталога, начиная от корня, иначе архивный каталог ищется относительно Вашего - 28 - регистрационного каталога. headerfield Имя поля (без :), которое выдается по команде headers. Если переменная не задана, поле констру- ируется стандартным образом из From: (если есть, иначе из From ). Для удобного просмотра заголов- ков своих отправленых писем нужно задать: set headerfield=to headername Если установлена эта логическая переменная, по команде headers выдается не адрес пользователя, а его имя (если есть). Рекомендуется установить эту переменную. По умолчанию выдается адрес (для сов- местимости). hold Логическая переменная hold указывает, что сообще- ния, которые Вы прочитали, но над которыми не про- изводили никаких действий, следует сохранять в системном почтовом ящике, а не записывать автома- тически в Ваш файл mbox. ignore Логическая переменная ignore указывает, что при составлении сообщений следует игнорировать символы CTRL/C, приходящие с Вашего терминала. Символы CTRL/C сохраняют свое исходное значение в команд- ном режиме программы mailx. Установка переменной ignore равносильна указанию ключа -i в командной строке, как описано в разделе 6. ignoreeof Родственная переменной dot переменная ignoreeof заставляет mailx не воспринимать CTRL/D как приз- нак конца сообщения. Переменная ignoreeof рабо- тает и в командном режиме mailx. keep Переменная keep указывает mailx, что если Ваш сис- темный почтовый ящик пуст, его не следует удалять, а надо сохранить файлом нулевой длины. Это полезно в том случае, если Вы решили защитить свой почтовый ящик, что можно сделать командой chmod 600 /usr/spool/mail/yourname где yourname - Ваше регистрационное имя. Если Вы этого не сделали, кто-нибудь может случайно про- честь Вашу почту, хотя приличные люди чужую почту не читают (даже случайно!). keepsave Если Вы сохраняете сообщение командой save, прог- рамма mailx обычно не учитывает его при выходе. Чтобы помнить все сохраненные сообщения, надо установить переменную keepsave. - 29 - metoo Если Вы отправляете почту по псевдониму, mailx не посылает сообщение Вам, даже если этот псевдоним Вас включает. Это удобно тогда, когда одним псев- донимом пользуются все члены группы. Если же Вы хотите получать копии сообщений, которые Вы посы- лаете по псевдониму, можете установить логическую переменую metoo. noheader Логическая переменная noheader отменяет печать номера версии и заголовков при вызове mailx. Установка этой переменной эквивалентна указанию ключа -N в командной строке. nopipe По умолчанию, при вызове внешней программы прос- мотра сообщений, сообщение подается на стандартный ввод. Если установлена переменная nopipe, формиру- ется временный файл и передается программе прос- мотра в качестве аргумента. Этот режим бывает полезен при перемещениях по сообщению. nosave Обычно при отмене письма по двухкратному нажатию CTRL/C mailx копирует незаконченное письмо в файл dead.letter в Вашем регистрационном каталоге. Установив переменную nosave, Вы это предотвратите. quiet Логическая переменная quiet отменяет печать номера версии при вызове mailx, печать таких диагностик, как Сообщение 4: командой type. и печать дополни- тельной информации для начинающего пользователя. record Если Вы любите хранить копии своих писем, прис- войте переменной record имя файла, в который будет записываться исходящая почта. Каждое новое отп- равленное Вами сообщение будет дописано к концу этого файла. screen Когда программа mailx при запуске печатает заго- ловки сообщений, число выдаваемых заголовков зави- сит от скорости Вашего терминала. Чем быстрее терминал, тем больше заголовков печатается. Знача- щая переменная screen изменяет это число. Ее зна- чение определяет, сколько заголовков сообщений должно выдаваться. Это же число используется для сдвигов при помощи команды z. sendmail Чтобы заменить систему доставки почты, надо прис- воить переменной sendmail полное имя той прог- раммы, которую Вы хотите использовать. Заметьте: это надо не всем! Большинство людей могут пользо- ваться той системой доставки почты, которая - 30 - вызывается по умолчанию. sort Значащая переменная, задающая порядок сортировки сообщений. Распознаются следующие значения: author - сортировка по имени автора; date - сортировка по дате и времени; subject - сортировка по темам. Сортировка происходит при чтении почтового ящика. Например, чтобы отсортировать текущий файл, нужно после установки переменной sort перечитать его командой file. toplines Значащая переменная toplines определяет число строк, которые печатает команда top вместо обычных пяти строк. verbose Логическая переменная verbose заставляет программу mailx вызывать sendmail с ключом -v, в котором он работает в режиме расширенных диагностик, объяв- ляет расширения псевдонимов и т.д. Установка пере- менной verbose эквивалентна вызову mailx с ключом -v, как описано в разделе 6. 6. Ключи командной строки В этом разделе описаны ключи, используемые в команд- ной строке при вызове программы mailx. -N Подавляет начальную печать заголовков. -d Включает отладочную информацию. Не для общего пользования. -f файл Показывает сообщения из файла файл, а не из Вашего системного почтового ящика. Если имя файл опу- щено, программа mailx читает файл mbox в Вашем регистрационном каталоге. -i Игнорирует сигналы прерывания CTRL/C, приходящие с терминала. -n Запрещает чтение файла /usr/lib/Mail.rc. Исполь- зуется редко, так как /usr/lib/Mail.rc обычно пуст. -s строка Используется при посылке почты. Строка использу- ется в качестве заголовка составляемого сообщения. Если строка содержит пробелы, ее следует заключить в кавычки. - 31 - -u имя Читает почту пользователя имя вместо Вашей собст- венной. Некоторые пренебрегают защитой своих поч- товых ящиков, но лучше быть осторожным. По существу, -u имя - это более простой способ сде- лать то же, что и -f /usr/spool/mail/имя. -v Ключ -v передается sendmail. То же самое можно сделать, установив переменную verbose. Следующие ключи также могут быть использованы в командной строке, но предполагается, что ими будут пользоваться не люди, а программы, вызывающие mailx. -T файл Организует запись в файл содержимого полей Article-Id всех сообщений, которые были прочитаны или удалены. Ключ -T сделан для программы read- news и не может использоваться для чтения Вашей почты. -h число Передает счетчик промежуточных пересылок. Прог- рамма mailx принимает число, увеличивает его и передает с ключом -h системе доставки почты. Ключ -h полезен только при рассылке почты по сетям. -r имя Используется для рассылки почты по сети: интерпре- тирует имя как имя того, кто послал сообщение. Имя и ключ -r просто передаются системе доставки почты. Программа mailx ждет, пока сообщение не будет послано, и возвращает полученный код возв- рата. Кроме того, mailx не изменяет формата сооб- щения. Обратите внимание, что ключи -h и -r, которые нужны для рассылки сетевой почты, практически не использу- ются, когда рассылка почты производится в одной сис- теме. Если при помлщи mailx пересылается большой файл (или множество маленьких), то полезно указать ключ -x, кото- рый сообщает системе доставки почты, что сообщение не обязательно отправлять немедленно, и подавляет запись отсылаемых сообщений, установленную переменной record. 7. Формат сообщений В этом разделе описан формат сообщений. Сообщение начинается со служебной строки состоящей из слова From, после которого идет имя пользователя и дата в формате, возвращаемом библиотечной программой ctime, которая описана в Руководстве программиста XENIX. Процедура ctime может возвращать дату в таком, например, формате: Fri Oct 26 19:12:48 1990 MSD - 32 - После строки от идут ноль или более строк полей заголовка. Каждое поле заголовка имеет вид: имя: информация Имя может быть любое, но только некоторые поля заго- ловка распознаются как нечто осмысленное. Возможные поля заголовка: Article-Id, Bcc, Cc, Date, From, Message-Id, Received, References, Reply-to Subject и To. Другие поля заголовка имеют значение для других систем. Поле заголовка можно продолжить на сле- дующей строке, начав строку-продолжение с пробела или табуляции. Если в сообщении есть какие-либо заголовки, после них должна идти пустая строка. Следующая часть называ- ется телом сообщения и должна быть текстом КОИ-8, не содержащим нулевых символов. Каждая строка должна завершаться символом новой строки КОИ-8, и длина ее не должна превышать 512 символов. Если требуется передать по почте двоичный код, предполагается, что эти данные будут перекодированы системой, которая преобразует шесть бит в печатный символ. Например, если Вы исполь- зуете большие и малые буквы, цифры, точку и запятую - всего 64 символа, то Вы можете послать двоичное число из 16 бит как три символа. Эти символы должны быть упа- кованы в строки, предпочтительно около 70 символов дли- ной, так как пересылка длинных строк более эффективна. Система доставки почты всегда добавляет к концу любого сообщения пустую строку. Эту строку удалить нельзя. Система доставки почты UUCP иногда добавляет пустую строку к концу сообщения каждый раз, когда оно проходит через машину. Необходимо отметить, что некоторые транспортные сетевые протоколы накладывают ограничения на длину сообщений. 8. Словарь Этот раздел содержит определения некоторых специфи- ческих терминов программы mailx. псевдоним Альтернативное имя человека или группы людей. ключ Аргумент командной строки программы mailx, начина- ющийся с `-'. Например, -f - это ключ. поле заголовка Строка в начале сообщения, содержащая информацию, которая является частью структуры сообщения. Обыч- ные поля заголовка - это To:, Cc: и Subject:. - 33 - почта Набор сообщений. Часто встречается в контексте "Вы прочитали свою почту?" почтовый ящик Место, где хранится Ваша почта, обычно в каталоге /usr/spool/mail. сообщение Отдельное письмо от кого-либо, первоначально нахо- дящееся в Вашем почтовом ящике. список сообщений Строка, используемая в командном режиме программы mailx для описания последовательности сообщений. переменная Информация специального назначения, которую Вы можете использовать для настройки mailx на свой вкус. Переменные определяются командой set. 9. Список команд, переменных и управляющих тельностей В этом разделе приводится краткое описание команд, логических и значащих переменных и управляющих последо- вательностей программы mailx. - 34 - В следующей таблице описаны команды: Команда Описание ____________________________________________________________ ! Выход в shell на одну команду - Вернуться к предыдущему сообщению = Напечатать номер текущего сообщения Print Печатать сообщение без игнорирования полей Reply Послать реплику всем адресатам сообщения Type Печатать сообщение без игнорирования полей alias Определить псевдоним как набор имен пользователей alternates Список других имен,под которыми известны Вы же chdir Изменить текущий каталог copy Скопировать сообщение в файл или архивный файл delete Удалить список сообщений dt Удалить текущее и показать следующее сообщение endif Конец условного оператора; см. if edit Редактировать список сообщений else Начало второй части условного оператора;см. if exit Выход без изменений file Узнать/изменить текущий почтовый файл folder То же, что и file folders Показать список файлов в архивном каталоге forward Переслать сообщение другому адресату from Показать заголовки списка сообщений headers Показать текущее окно сообщений headline Добавить дополнительное поле заголовка help Выдать краткий список команд программы mailx hold То же, что и preserve if Условное выполнение команд программы mailx ignore Установить/узнать список игнорируемых полей list Показать действующие команды программы mailx local Показать другие имена локальной группы lpr Напечатать текущее сообщение mail Послать почту на указанное имя mbox Пометить список сообщений для сохранения в mbox next Перейти к следующему сообщению и напечатать его preserve Оставить список сообщений в системном п/я quit Выход с записью в системный п/я или в mbox reply Послать ответ на сообщение его автору save Добавить сообщения, включая заголовки, в файл set Установить логическую или значащую переменную shell Вызвать интерпретатор командного языка top Выдать первые несколько (5) строк сообщений из списка type Выдать сообщения undelete Восстановить список сообщений unset Отменить действие команды set uudecode Раскодировать указанные сообщения uudecode в бинарные файлы visual Вызвать экранный редактор на список сообщений write Добавить сообщение без заголовка в файл z Перейти к следующему/предыдущему окну - 35 - В следующей таблице приведены переменные. Для каждой переменной указано, является ли она логической или зна- чащей. Перем. Тип Описание __________________________________________________________ EDITOR зн. Имя редактора для ~e и edit PAGER зн. Имя программы постраничной выдачи LPR зн. Имя программы печати SHELL зн. Имя shell'а для shell, ~! и ! VISUAL зн. Имя экранного редактора для ~v и visual append лог. Всегда добавлять сообщения к концу mbox ask лог. При посылке почты выдавать Subject: askcc лог. В конце сообщения спрашивать Cc: autoprint лог. По команде delete выдавать следующее сообщение autosign лог. Добавить файл .signature в конец посылаемого сообщения crt зн. Минимальное число строк для вызова more debug лог. Выдавать отладочную информацию dot лог. Точка отдельно в строке - конец сообщения escape зн. Управляющий символ вместо ~ (тильды) folder зн. Каталог для хранения архивных файлов headerfield зн. Имя поля для команды h headername лог. Выдавать имя по команде h hold лог. По умолчанию хранить сообщения в системном п/я ignore лог. При посылке почты игнорировать CTRL/C ignoreeof лог. Не прерывать ввод письма или команды по CTRL/D keep лог. Не уничтожать пустой системный п/я keepsave лог. Не удалять сохраненные сообщения metoo лог. Включать посылающего сообщение в псевдонимы noheader лог. При запуске не печатать версию и заголовки nopipe лог. Для просмотра формировать файл nosave лог. Не сохранять письма в dead.letter realname зн. Реальное имя пользователя quiet лог. Не печатать версию mailx и номера сообщений record зн. Файл, в котором надо хранить исходящую почту screen зн. Размер окна заголовков для команды z sort зн. Задать порядок сортировки sendmail зн. Альтернативная система доставки почты toplines зн. Количество строк для команды top verbose лог. Вызов sendmail с ключом -v - 36 - В следующей таблице приведены управляющие последова- тельности, разрешенные при составлении сообщений. Посл. Аргументы Описание _________________________________________________________________ ~! команда Выполнить команду shell ~: ком_mailx Выполнить команду mailx ~c имя ... Добавить имена к полю Cc: ~d Включить dead.letter в сообщение ~e Вызвать редактор на незаконченное сообщение ~f сообщения Вставить перечисленные сообщения ~h Редактировать поля заголовка ~m сообщения Вставить сообщения, сдвинув вправо на табуляцию ~M сообщения То же, что и ~f ~>> сообщения Вставить сообщения, добавив символ '>>' ~p Напечатать сообщение, как оно есть ~q Отменить письмо; то же, что и CTRL/C ~r файл Вставить файл в сообщение ~s строка Записать строку в поле Subject: ~t имя ... Добавить имена к полю To: ~u [исх_имя] пол_имя Вставить в текущее сообщение бинарный файл, перекодированный uuencode в текстовый ~v Вызвать на сообщение экранный редактор ~w файл Записать сообщение в файл ~| команда Пропустить сообщение через команду ~~ строка Поставить знак ~ в начале строки В следующей таблице показаны ключи, которые исполь- зуются в командной строке программы mailx: Ключ Описание ____________________________________________________________ -N При запуске не печатать список заголовков -T каталог Создавать рабочие файлы в указанном каталоге. -d Включить отладку -f файл Брать сообщения из файла или из ~/mbox -h число Счетчик пересылок -i Игнорировать сигналы прерывания от терминала -n Запрещает чтение /usr/lib/Mail.rc -r имя Послать почту от пользователя имя -s строка Сделать строку предметным заголовком -u имя Читать почту пользователя имя, а не свою -v Вызвать sendmail с ключом -v -x Признак передачи очень большого сообщения - 37 - Обратите внимание: Ключи -T, -d, -h и -r в интерактив- ном режиме обычно не используются (хотя в принципе это возможно). 10. Особенности и отличия системы mailx дл В ОС MSDOS реализованы все сервисные возможности системы mailx, но есть ряд отличий, обусловленных осо- бенностями MSDOS. Перед началом работы система пытается определить состояние среды через переменные стандарт- ного окружения (Environment) или файлы настройки. Задание переменной в стандартном окружении (командой SET переменная=значение) заменяет назначение этой пере- менной из файла настройки. Везде далее конструкция %переменная% это значение переменной. Минимальный требуемый набор переменных для работы mailx и их значения: HOME - каталог пользователя, откуда берутся файлы лич- ной конфигурации. USER - имя пользователя (совпадающее с именем его поч- тового ящика в подкаталоге с именем BOXES сис- темного почтового каталога). TZ - переменная, задающая временную зону из трех ком- понент: имя обычной временной зоны, 3 буквы; сдвиг часового пояса от Гринвича, число; имя временной зоны летнего времени, 3 буквы; например, TZ=MSK-3MSD для Москвы. DOMAIN - переменная, задающая имя вашего домена (полное имя пользователя выглядит так: %USER%@%DOMAIN%). Кроме этого, распознаются значения несколько допол- нительных переменных. Среди них можно выделить: MSG - язык диагностик; если эта переменная имеет зна- чение 'r', все диагностические сообщения выда- ются на русском языке, если не указана или имеет значение 'e' - на английском. COMSPEC - имя запускаемого интерпретатора команд. TMP - имя каталога для временных файлов mailx. Чтобы определить положение файлов настройки, mailx распознает, из какого каталога она была вызвана и ищет системный файл настройки UUPC.RC в подкаталоге CONF (там, в частности, задаются переменные TZ, DOMAIN и - 38 - MSG). Далее, из текущего каталога берется пользова- тельский файл настройки PERSONAL.RC (там задаются пере- менные HOME и USER). Если такого файла не существует, делается попытка найти эти переменные в окружении. Таким образом стандартная последовательность вызова mailx такова: - перейти в домашний каталог (там обычно находится PERSONAL.RC); - вызвать mailx из системного каталога UUPC; Рекомендуется добавить системный каталог UUPC в переменную PATH в файл AUTOEXEC.BAT. Теперь опишем формат файлов UUPC.RC и PERSONAL.RC. Все переменные задаются на отдельных строках в виде: переменная=значение Строки, начинающиеся с символа '#', считаются ком- ментариями. Можно отметить, что назначения из файлов конфигура- ции (MAILRC, MAIL.RC) отменяют назначения из файлов настройки. Отличия в именах файлов: XENIX MSDOS ________________________________________________ $HOME/dead.letter %HOME%\DEAD.LET $HOME/.mailrc %HOME%\MAILRC $HOME/.signature %HOME%\PERSONAL.SIG /usr/lib/aliases UUPC\MAIL\ALIASES.TX_ /usr/spool/mail/$USER UUPC\MAIL\BOXES\%US /usr/lib/relcom/Mail.rc UUPC\MAIL\MAIL.RC /usr/adm/maillog UUPC\MAIL\MAILLOG ________________________________________________ Отличия в интерфейсе с пользователем: Введена логическая переменная autocall. После ее установки при выходе из mailx проверяется, есть ли поч- товые сообщения, которые нужно отправить на удаленные машины, и, в этом случае запускается программа связи UUIO. - 39 - СОДЕРЖАНИЕ Аннотация .................................... 1 1. Введение ..................................... 1 2. Вызов программы mailx ........................ 2 3. Обслуживание архивных файлов ................. 9 4. Рассылка почты ............................... 10 4.1. Управляющие последовательности ............. 10 4.2. Доступ к сетям ............................. 14 4.3. Специальные адресаты ....................... 16 5. Дополнительные возможности ................... 17 5.1. Списки сообщений ........................... 17 5.2. Список команд .............................. 18 5.3. Переменные ................................. 27 6. Ключи командной строки ....................... 31 7. Формат сообщений ............................. 32 8. Словарь ...................................... 33 9. Список команд, переменных и управляющих после- довательностей ............................... 34 10. Особенности и отличия системы mailx для MSDOS ........................................ 38 - 40 -
Polina Antonova | polina@hq.demos.su /\/\ DEMOS, | polina%hq.demos.su@relay.eu.net (____) Moscow, Russia | +7 095 231-2129 __(__ ) '------'~~

Last-modified: Mon, 29 Jun 1998 14:13:32 GMT
World LibraryРеклама в библиотекеБиблиотека не предназначена для детей! Проект Либмонстра, партнеры БЦБ - Украинская цифровая библиотека и Либмонстр Россия https://database.library.by