- Прием и отправка почты из командной строки
- Отправка почты
- Отправка писем с вложениями
- Отправка писем из скриптов bash/shell
- Чтение писем
- Команда Maildir-utils
- Ротация /var/spool/mail/root
- linux-notes.org
- Установка утилиты mail в Unix/Linux
- Команды mail/mailx в примера на Unix/Linux
- 3 thoughts on “ Команды mail/mailx в примера на Unix/Linux ”
- Добавить комментарий Отменить ответ
- Delete all root mail / inbox on Linux / Unix from a shell prompt
- How to install mail command on Linux
- How do I read my mail messages from the CLI on Linux?
- How to delete root user’s mailbox/inbox file in Linux or Unix
- How to remove root user’s email every day using cron job
Прием и отправка почты из командной строки
Обычно для приемки и отправки почты используются веб-сервисы типа gmail и yahoo, или графические почтовые клиенты. Однако в linux мы можем также отправлять или получать почту в командной строке. Это полезно в таких ситуациях, как отправка почты из скриптов, или в случаях, когда графическая оболочка недоступна.
В этом руководстве описывается, как использовать команду mail для приема и отправки почты.
Отправка почты
В зависимости от дистрибутива, который вы используете, может понадобиться установить дополнительные пакеты, такие как mailutils, чтобы команда mail нормально работала.
Пользователи Debian/Ubuntu могут воспользоваться командой apt-get:
Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут сделать это с помощью yum:
Теперь команда mail должна быть готова к работе.
Выполните приведенную ниже команду, заменив «user@yourmaildomain.com» на свой адрес электронной почты. Опция s задает тему письма.
Теперь вы можете вводить текст письма. Когда закончите, нажмите «control-D» в начале новой строки.
Вы отправили первое письмо из командной строки. Содержимое письма можно вставить из файла.
В некоторых дистрибутивах командная оболочка сначала запросит в интерактивном режиме ввод других полей, таких как «Cc» (Carbon copy). Просто нажимайте «Enter», чтобы пропустить этот этап. Когда вы введете адрес или адреса электронной почты, необходимо нажать «Enter», чтобы перейти на новую строку, к телу письма.
После нажатия Ctrl+D вы возвращаетесь в командную строку без каких либо дополнительных оповещений. Однако ваше письмо было отправлено.
Интересно, что если вы ничего не введете в теле письма и нажмете Ctrl+D, команда mail отреагирует на это:
Если тело письма хранится у нас в отдельном файле, мы можем напрямую использовать его для отправки письма. Это полезно при вызове команды mail из скриптов, или других программ, написанных, например, на perl или php.
Или быстрая отправка письма одной строкой:
Другие полезные параметры команды mail:
-s subject (тема письма)
-c email-address (CC — отправка копии письма по адресам email-address)
-b email-address (BCC — отправка скрытой копии письма по адресам email-address)
Ниже пример использования этих опций:
Возможно задавать несколько получателей, перечисляя их адреса через запятую.
Указать адрес отправителя тоже несложно, но здесь есть своя хитрость. После отправляемого письма необходимо добавить перед своим адресом следующую последовательность символов:
(двойное тире) (пробел) (одинарное тире) (без пробела) f
Однако приведенная выше последовательность может работать в centos, но не в debian или ubuntu. В этих системах используется альтернативный синтаксис:
Опция a в целом добавляет дополнительные заголовки. Чтобы задать с ее помощью отправителя, используется следующий синтаксис:
Обратите внимание, что бы экранируем угловые скобки, так как они могут иметь свое назначение для командной оболочки.
Отправка писем с вложениями
Команда mail используется до сих пор, так как это простой и быстрый способ отправки писем, однако она, к сожалению, не поддерживает отправку вложений. Теперь мы сделаем следующий шаг и откроем для себя MUTT. Это очень мощный консольный почтовый клиент, и он умеет намного больше, чем просто отправка писем с вложениями, но в данном случае нас интересует именно эта возможность.
Если mutt по умолчанию у вас не установлен, вы можете сделать это с помощью apt-get или yum от имени root (или используя sudo):
Для пользователей Debian / Ubuntu:
Для пользователей Fedora / CentOS или Red Hat Enterprise Linux (RHEL):
Теперь вы можете отправлять письма с вложениями из командной строки.
Отправка простого письма:
Отправка письма с вложением:
Отправка писем из скриптов bash/shell
Теперь давайте копнем глубже и попробуем отправить письмо из скрипта оболочки. Ниже простой скрипт, отправляющий информацию по использованию диска.
Откройте новый файл, вставьте в него приведенные выше строки, сохраните и запустите. Вы получите письмо, содержащее вывод команды «du -sh».
И последняя хитрость в письмах из командной сроки — добавление вложений к письмам, отправляемым из скриптов. Предположим, вам необходимо сделать резервную копию директории с конфигурационными файлами, заархивировать ее и отправить в качестве вложения с помощью mutt:
Команда echo в начале третьей строки добавляет текст «Archived configuration files» в тело письма.
Чтение писем
До сих пор мы рассматривали отправку писем из командной строки. На самом деле также легко можно читать письма из командной строки:
Вы вероятно заметили, что для отправки и получения писем мы используем одну и ту же команду. Однако для чтения писем не нужно добавлять никаких опций.
Ниже простой вывод:
Первая строка вывода — это версия программы mail. Вторая строка говорит о том, что имеется два сообщения, оба непрочитанные, и почта хранится в файле /var/spool/mail/hcg.
У всех пользователей linux файл с почтой находится в директории /var/spool/mail/. При получении нового письма оно добавляется в конец этого файла. После информации о файле выводится список писем.
Настоятельно рекомендуется не редактировать этот файл без использования mail или аналогичной программы. Читать или производить поиск писем лучше всего с помощью grep.
Чтобы прочитать первое письмо, просто введите 1 и нажмите enter. При чтении письма, если вам необходимо вернуться к списку писем, просто нажмите «q». Символ > показывает, какое из писем в настоящее время является текущим.
Команда Maildir-utils
«mu» — это набор утилит командной строки для Linux/Unix, который позволяет производить быстрый поиск писем.
Пользователи Debian/Ubuntu могут установить его с помощью apt-get:
Пользователи Fedora / CentOS / Red Hat Enterprise Linux (RHEL) могут использовать yum:
Ниже пара простых команд из этого пакета:
для поиска писем от william с темой report.
Чтобы проверить текущие настройки почты, используется опция info.
Итак, можно подвести итоги. На самом деле получение и отправление писем из командной строки не представляет особой сложности, если вы знаете, что делаете.
Источник
Ротация /var/spool/mail/root
Всем привет!
Имеется виртуалка с цент ос.
Почта складывается в файл /var/spool/mail/root, но там нет ротации.
Так как почты иногда много, а ротации нет, то файл пухнет и пухнет, приходится регулярно чистить руками, что напрягает.
Подскажите, как поставить ротацию на этот файл?
так:
/etc/logrotate.d, создаю файл sendmail — тут не знаю, как верно назвать.
Пишу туда /var/spool/mail/root <
weekly
notifempty
create 600 root root
>?
Просто взял создал аналог с ркхантер.
Все ли норм?
У меня лог почты так начинается:From MAILER-DAEMON.
Нужен ли ребут вм после создания файла?
Ротировать возможно вообще?
Просто я вижу, что в /var/spool/mail есть 2 файла: root и rpc. rpc всегда пуст. Можно ли ротировать как-то файл root?
Название темы поправил.
Это не лог, если ты его будешь «ротировать», то просто будешь терять сообщения.
Если тебя напрягает, что туда валится много почты, лучше узнай, откуда её появляется много и сделай так, чтобы было не много.
Либо сделай перенаправление на другой почтовый ящик и там обрабатывай.
Почему терять?
Поясните, пожалуйста
Мне не нужна почта старше 4 недель.
Просто иногда складывается так, что не будет возможности его чистить.
/etc/aliases поставь гуглопочту, делов-то. Ещё как вариант поставить postfix + dovecot и выгребать на свой комп. В крайнем случае можно удалить MTA из системы, чтобы вообще не было никакой почты.
Либо запрет на доставку писем в локальные ящики (настройка MTA).
Либо квоты на размер хранилища в MTA (письма всеравно надо будет выгребать).
Либо делаем скрипт для fetchmail и запихиваем в крон.
Потому что оно отротируется и через стандартную mail ты не прочитаешь её.
Мне не нужна почта старше 4 недель.
Просто иногда складывается так, что не будет возможности его чистить.
Лично моя практика показывает, что это неправда. Лучше перенаправь всю почту на root@ на свой внешний ящик в том же gmail и сделай там фильтр.
Я просто по ссш читаю файл через вин сцп-правка-редактировать файл-мне так удобнее. Тогда надо пообдумать. Но файл то ротировать так можно технически, как я понял?
Ищи в гугле тулзы на работу с файлами mailbox. По идее даже через такой изврат можно решить твою задачу.
Но файл то ротировать так можно технически, как я понял?
Можно. Можно даже /bin/sh ротировать, если захочется.
Источник
linux-notes.org
Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.
Синтаксис команды mail:
Опции.
-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r : Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».
Установка утилиты mail в Unix/Linux
Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:
Для того чтобы установить утилиту mail на Debian/Mint, используйте:
Теперь вы должны иметь команду mail, и можно приступать к работе.
Команды mail/mailx в примера на Unix/Linux
В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.
Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:
Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.
Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):
Данная команда (?) покажет все субкоманды для Mail.
Отправка электронной почты пользователю:
В команде «echo» задается некоторый текст для отправки по электронной почте.
Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:
В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):
Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:
Отправка содержимого текстового файла
3 thoughts on “ Команды mail/mailx в примера на Unix/Linux ”
Не подскажете, как настроить на свой почтовый адрес?
Установить и настроить свой почтовый сервер. Какой взять, — это на любителя. Я предпочитаю — postfix + dovecot. Настройку данной связки я опубликовывал тут: http://linux-notes.org/ustanovka-pochtovogo-servera-postfix-dovecot-i-squirrelmail-v-centos-redhat-fedora/
Если у меня все письма в первый экран не влазят, как увидеть следующую страницу списка?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Delete all root mail / inbox on Linux / Unix from a shell prompt
How to install mail command on Linux
Type the following yum command on a CentOS/RHEL to install the same:
sudo yum install mailx
Use the following dnf command on a Fedora Linux to install it:
sudo dnf install mailx
Try the following apt command/apt-get command on an Ubuntu or Debian system:
sudo apt install mailutils
How do I read my mail messages from the CLI on Linux?
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
How to delete root user’s mailbox/inbox file in Linux or Unix
Simply type the following command at shell prompt to delete all root mail:
> /var/spool/mail/root
Verify it with the following command or cat command or ls command:
mail
cat /var/spool/mail/root
ls -l /var/spool/mail/root
How to remove root user’s email every day using cron job
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Category | List of Unix and Linux commands |
---|---|
Documentation | help • mandb • man • pinfo |
Disk space analyzers | df • duf • ncdu • pydf |
File Management | cat • cp • less • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop Apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop |
Searching | ag • grep • whereis • which |
Shell builtins | compgen • echo • printf |
Text processing | cut • rev |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Comments on this entry are closed.
Nothing happens when I type /var/spool/mail/root to purge the root user’s mail messages.
I think you meant,
#cat /dev/null > /var/spool/mail/root
Thanks, it worked!
because you need type > before file to clear…
Cheers, had forgotten all anout dev/null, thanks!
You just did oversee the > in front of /var/spool/mail/root
Works like a charm…
Thank boss……..it’s an important command
Great thanks for the command
d = delete
1-x = mail 1 to mail x (e.g. d 1-53)
Here the simple way to delete all mail
echo ‘d *’ | mail -N
Thanks!
It works!!
I’ve tried that but received this message: ‘Value too large for defined data type’ 🙁
can anybody help me?
thanks from now .
Thank you for advice worked..
I have deleted the file “root” from /var/spool/mail itself and from then on nobody is receiving the emails upon our transactions.
Please suggest me a solution if any?
Issue this command, as root:
gud information.worked great.
Thanks….
Use Nirmal’s solution above:
`cat /dev/null > /var/spool/mail/root`
Not the correct way.
Use biff or edit your .bashrc to add:
You can’t cat /dev/null; it is a block special device. It also outputs nothing and closes right away; it is the same as the original post in concept. the Null device is a place to output stuff you don’t want, its opposite would be ‘/dev/zero’. The original one doesn’t work because it is unbalanced- there is nothing going into the file.
Is basically what the cat /dev/null does. You want
echo > /path/to/file. instead.
to empty the mail file
#cp /dev/null /var/mail/root
Can i eat near my Linux server or is this bad practice?
Fantastic! – Just cleared 35000 unread mail items 😉
Keep up the good work, stay safe!
Paul 🙂
none of this works
what will be the impact if I use the command for oracle file which is more than 3 gb .If there is no bad impact ,can i execute on Production server,can I get any script
cat /dev/null > var/spool/mail/oracle
This will delete the mail messages for user ‘oracle’, leaving the file intact as a zero-byte file. If you don’t need the messages, this is safe to do. HOWEVER, you should get into the habit of saving this file off somewhere before you issue this command (ftp the file to your local machine, then put it on a disk or something…just in case you need to refer to it later).
Источник