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 __(__ ) '------'~~