Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

MAIL

НАЗВАНИЕ
mail - отправка пользователям почты или ее чтение

СИНТАКСИС


   mail  [-o] [-s] [-w] [-t] адресат ...
   mail  [-e] [-h] [-p] [-q] [-r] [-f файл] [-F адресат ...]

ОПИСАНИЕ

Отправка почты
На отправку почты воздействуют следующие опции:

-o
Подавить оптимизацию адреса.

-s
Не вставлять перевод строки в начало отправляемого письма (см. ниже ПРЕДОСТЕРЕЖЕНИЯ).

-w
Отправить письмо удаленному пользователю без ожидания завершения пересылки.

-t
Добавить к письму строку "To: адресаты", что позволяет получателю знать всех адресатов письма.

Адресат обычно задается как входное имя пользователя. Если адресат задан, предполагается, что выполняется отправка почты (за исключением случая опции -F). При этом текст отправляемого сообщения читается со стандартного ввода, пока либо не будет введен символ конца файла (CTRL+D), либо не будет введена строка, состоящая из единственной точки. Затем команда mail добавляет письмо к почтовому файлу каждого из адресатов. Письмо - это сообщение, перед которым стоит почтовый штемпель. Почтовый штемпель состоит из одной или нескольких строк "From ...", за которыми идет пустая строка (если только не была использована опция -s).

Если будет обнаружено, что письмо не может быть доставлено, то оно вернется к отправителю с диагностикой места и причины неудачи. Если во время ввода сообщения нажать клавишу прерывания процесса, то письмо будет сохранено в файле dead.letter, что позволяет в будущем отредактировать и отправить его. Этот файл обновляется каждый раз, когда он необходим.

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


  имя_системы![имя_системы! ...]имя_пользователя

Чтение почты
На чтение почты воздействуют следующие опции:

-e
Установка кода завершения без вывода почты. Нулевое значение кода завершения означает, что у пользователя есть почта, в противном случае возвращается 1.

-h
Показ окна с заголовками писем, а не текстов писем. Затем выдается приглашение "?".

-p
Вывод текстов всех писем без промежуточных приглашений.

-q
Завершить работу команды mail после получения прерывания. В противном случае прерывание вызывает лишь прекращение вывода текста письма.

-r
Выводить тексты писем в порядке поступления.

-f файл
Использовать файл вместо подразумеваемого почтового файла.

-F адресат
Вызывает переадресацию последующей почты указанному адресату. Опция допустима, только когда у пользователя нет почты.

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

перевод_строки или +
Перейти к следующему письму.

d или dp
Удалить письмо и перейти к следующему. Как и в двух последующих командах, собственно удаление произойдет лишь в конце сеанса работы с mail.

d n
Удалить письмо с номером n (письма нумеруются с 1, в порядке поступления). Не переходить к следующему письму.

dq
Удалить письмо и выйти из mail.

h
Показать заголовки писем, расположенных в окрестности текущего.

h n
Показать заголовок письма с номером n.

h a
Показать заголовки всех писем в пользовательском почтовом файле.

h d
Показать заголовки писем, отмеченных на удаление.

p
Снова показать текущее письмо.

-
Показать предыдущее письмо.

a
Показать письмо, пришедшее во время сеанса работы с mail.

n
Показать письмо с номером n.

r [адресат ...]
Ответить отправителю письма и другим адресатам, затем удалить сообщение.

s [файл ...]
Сохранить письмо в указанных файлах (по умолчанию используется файл $HOME/mbox). Из почтового файла письмо удаляется.

y [файл ...]
То же, что и предыдущая команда.

u [n] Снять отметку об удалении с письма номер n (по умолчанию используется номер последнего прочитанного).

w [файл ...]
Сохранить в указанных файлах только сообщение (без почтового штемпеля). По умолчанию используется файл $HOME/mbox.

m [адресат ...]
Переслать текущее письмо указанным адресатам.

q или CTRL+D
Оставить в почтовом файле только неудаленные письма и завершить сеанс работы с командой mail.

x
Оставить почтовый файл неизменным и завершить сеанс работы с командой mail.

!команда
Выполнить одну команду операционной системы.

?
Показать перечень команд.

При входе в систему пользователю сообщается о наличии для него почты, если она есть. Также сообщается о появлении новой почты во время сеанса работы с командой mail.

Для видоизменения работы команды mail существует два способа обращения с почтовым файлом. Чтобы обеспечить необходимый уровень секретности, следует дать прочим пользователям право либо на чтение/запись этого файла, либо только на чтение, либо не дать никаких прав. Если режим доступа к почтовому файлу отличается от стандартного, файл будет сохранен, даже если станет пустым.

Если первой строкой почтового файла является


  Forward to адресат

приходящая текущему пользователю почта будет пересылаться адресату. В этом случае к почтовому штемпелю будет добавлена строка "Forwarded by ...". Эта возможность полезна в рамках сети, чтобы собирать почту на одной машине и иметь информацию о том, какие письма и откуда пересылались. Установление и отмена режима переадресации производится посредством опции -F. Можно задать список адресатов, которым будет пересылаться почта. Элементы списка разделяются запятыми или пробелами, весь список заключается в кавычки. Длина списка - до 1024 байт. Напомним, что в общем случае адрес содержит один или несколько префиксов имя_системы!. Пример:


  mail -F "guest sys6!guest"

Для отмены режима переадресации адресат должен быть пустым:

  mail -F ""

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

ФАЙЛЫ


   /etc/passwd             Файл паролей  используется  для
                           идентификации  отправителей   и
                           адресатов.
   /usr/mail/пользователь  Почтовый файл.
   $HOME/mbox              Подразумеваемый файл для сохранения писем.
   $MAIL                   Полное имя почтового файла.
   /tmp/ma*                Временные файлы.
   /usr/mail/:saved/*      Временные файлы.
   /usr/mail/*.lock        Блокировочные файлы.
   dead.letter             Прерванное письмо.

ПРЕДОСТЕРЕЖЕНИЯ
В результате нескольких переадресаций может образоваться цикл. При попадании почты в цикл будет выдано сообщение


mail: Unbounded forwarding

Опцию -s следует использовать осторожно, так как без промежуточного перевода строки сообщение может быть проинтерпретировано как часть почтового штемпеля, что нарушит работу команды mail. Для совместимости с командой сделано так, что если первая строка сообщения - "Subject: ...", то пустая строка не вставляется вне зависимости от использования опции -s.

СЮРПРИЗЫ
Иногда команда mail не может удалить блокировочный файл.

После возникновения прерывания следующее сообщение может не напечататься; команда p исправляет ситуацию.