
Команды mail/mailx в примера на Unix/Linux
Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.
Синтаксис команды mail:
mail [options] to-address [-- sendmail-options]
Опции.
-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r : Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».
Установка утилиты mail в Unix/Linux
Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:
$ yum install mailx
Для того чтобы установить утилиту mail на Debian/Mint, используйте:
$ apt-get install mailutils
Теперь вы должны иметь команду mail, и можно приступать к работе.
Команды mail/mailx в примера на Unix/Linux
В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.
Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:
# mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/root": 1 message 1 new >N 1 logwatch@host.deltas Wed Dec 9 07:14 44/1670 "Logwatch for host.deltasquadron.com (Linux)" &
Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.
Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):
Команды Mail t <Список сообщений> тип. n Перейти на другое сообщение. e <Список сообщений> Отредактировать почту (сообщение). f <Список сообщений> Вывести линии "head" сообщений. d <Список сообщений> Удалить почту (сообщение). Нужно указать номер почтового сообщения. s <Список сообщений> добавлять сообщения в файл. u <Список сообщений> Отменить удаление сообщений. R <Список сообщений> Ответить на сообщение. r <Список сообщений> отвечать на все сообщения отправителей и получателей. pre <Список сообщений> Создать сообщения и вернуться в /usr/spool/mail. m <Список пользователей> Почта для конкретных пользователей. q Выход, сохранить нерешенные сообщения в Mbox и выйти. x Выход, не удалить системный почтовый ящик (system mailbox). h Напечатать активные заголовки сообщений. ! shell escape cd [папка] chdir to directory or home if none given A <Список сообщений> Состоит из целых чисел, диапазонов или имен пользователей и разделены пробелами. Если он опущен mail использует последнее набранное сообщение. A <Список пользователей> состоит из имен пользователей или псевдонимов, разделенных пробелами. Псевдонимы определены в .mailrc в вашем домашнем каталоге. &
Данная команда (?) покажет все субкоманды для Mail.
Отправка электронной почты пользователю:
# echo "some text here to send it...." | mail -s "My_subject_is_here" send_to_some@email.com
В команде «echo» задается некоторый текст для отправки по электронной почте.
Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:
# mail -s "My_subject_is_here" send_to_some@email.com
В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):
Hello here, just simple test here . Cc:
Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:
# echo echo "some text here to send it...."| mail -s "My_subject_is_here" send_to_some@email.com send_to_some2@email.com send_to_some3@email.com send_to_some4@email.com
Отправка содержимого текстового файла
Вы можете отправить содержимое файла с помощью cat/echo или с помощью перенаправления оператор ввода «<«,
Например, чтобы отправить содержимое some_txt_file.txt через почту, нужно выполнить:
# cat somefile.txt | mail -s "My_subject_is_here" "user1@example.com,user2@example.com" # mail -s "Mail subject" "user1@example.com,user2@example.com" < /home/captain/some_txt_file.txt
Использование Mail для CC & Bcc.
Для использования CC и ИСС, нужно использовать опции «-c» и «-b». Пример:
# echo "some text here to send it...." | mailx -s "My_subject_is_here" -b bcc_user1@example.com -c cc_user1@example.com -r sender_user1@example.com recipient_user1@example.com
Для отправки содержимого файла:
# mail -s "My_subject_is_here" -c "cc_user1@example.com" -b "bcc_user1@example.com" "user@example.com" < /home/captain/some_txt_file.txt
Прикрепление файлов:
Команда mail не обеспечивает крепления файлов. Но существует обходной путь для присоединения файлов с помощью команды UUencode. Например, можно сделать так:
# uuencode some_attachment_file some_attachment_file | mail -s "My_subject_is_here" "user@example.com" < /home/captain/some_txt_file.txt
Небольшая статья о утилите UUencode:
Работа с почтовым ящиком на сервере с утилитой mail.
Чтобы запустить утилиту mail и показать список сообщений в вашем почтовом ящике выполните:
Команда mail выведет список сообщений в ящике системы. Для вывода дополнительных команд нужно ввести знак (?). Я рассказывал какие бывают подкоманды для утилиты mail выше, вы можете использовать их.
Другой способ просмотра электронной почты — это использования опции «-f»:
# mail -f /var/spool/mail/captain Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/captain": 0 messages &
captain — это пользователь на сервере. У меня нет новых сообщений.
Из приведенного выше вывода, вы можете видеть, что он отображает адрес, дату и тему писем в почтовом ящике. Он также отображает амперсанд (&) строку в конце. Чтобы вернуться в основное меню, нажмите «Ctrl + Z» или «CTRL + D» в зависимости от вашей операционной системы и нажмите клавишу «Enter». Амперсанд (&) позволяет читать, отвечать и удалять сообщения электронной почты.
Чтение почты.
Чтобы прочитать электронную почту, нужно знать N-ый номер почты, просто введите номер почтового письма после амперсанда (&) и нажмите клавишу ВВОДА (Enter). Например:
$ mail -f /var/spool/mail/captain Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/captain": 2 messages 2 new >N 1 root@linux-notes.org Tue Jan 5 12:01 15/2015 "test Mail subject_1" N 2 root@linux-notes.org Tue Jan 6 12:12 16/2015 "Test Mail subject_2" &2 Message 2: From root@linux-notes.org Jan 6 12:12 16/2015 --------------- Subject: Test Mail subject_2 ------------ This displays the second email details.
Навигация по входящей почте.
Чтобы перейти к следующей электронной почте, введите символ «+». Чтобы вернуться к предыдущему электронной почте, введите символ «-» в после амперсанда:
&- Message 1: From root@linux-notes.org Tue Jan 5 12:01 15/2015 --------------- Subject: test Mail subject_1 ------------
Ответить на электронную почту.
После того, как вы прочли письмо, вы можете ответить на него, набрав «reply» после амперсанда и нажав Enter:
&reply To: root@linux-notes.org captain@linux-notes.org Subject: Re: test Mail subject_1
Удаление почтовых писем с ящика.
Вы можете удалить электронную почту, используя опцию «d» после амперсанда и нажав «Enter».
Удалить прочитанное письмо:
&d
Удалить прочитанное письма 2 и 4:
&d 2 4
Удалить письма с 6 по 66:
&d 6-66
Удалить все письма с почтового ящика mbox:
&d *
На этом, у меня все, тема «Команды mail/mailx в примера на Unix/Linux» завершена.
Не подскажете, как настроить на свой почтовый адрес?
Установить и настроить свой почтовый сервер. Какой взять, — это на любителя. Я предпочитаю — postfix + dovecot. Настройку данной связки я опубликовывал тут: http://linux-notes.org/ustanovka-pochtovogo-servera-postfix-dovecot-i-squirrelmail-v-centos-redhat-fedora/
Если у меня все письма в первый экран не влазят, как увидеть следующую страницу списка?
После ввода текста письма уже не точка, а Ctrl+D