Вопрос Что такое сообщение «У вас есть новое письмо» в Linux / UNIX?


Иногда, когда я вхожу в ящик и «su» для root, я получаю симпатичное небольшое сообщение о том, что у меня есть почта (слава богу, это не AOL).

  • Где эта почта?
  • Что он содержит?
  • Кто / что отправил?
  • Насколько это важно?

Это даже настоящая «почта» в том же смысле, что и электронная почта? Или это только моя система говорит мне что-то?

РЕДАКТИРОВАТЬ: В связи с это вопрос, могу ли я отправить свою почту с помощью программы sendmail следующим образом: email@localhost?


369
2017-07-04 15:23


происхождения


У меня есть это одно сообщение, в котором говорится: «Этот текст является частью внутреннего формата вашей почтовой папки ...», поэтому, конечно, всякий раз, когда я вхожу в систему, мне сообщают, что у меня есть почта. - GEdgar
@GEdgar: Обычно это означает, что вы должны прекратить использовать Mbox почтовых ящиков и перейти на Maildir :) - grawity
Связанный: superuser.com/questions/149282/... - dmckee
Как пересылать почту: unix.stackexchange.com/questions/26666/... - Melebius
В случае, если кто-то ищет, вот одномоментный силовой коммутатор powerhhehell, который разбивает его на отдельные файлы, которые можно прочитать в Outlook: $i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)} - JDuarteDJ


ответы:


Где эта почта?

Вероятно, он находится в файле спула: /var/mail/$USER или /var/spool/mail/$USER являются наиболее распространенными локациями в Linux и BSD.

(Возможны другие местоположения - проверьте, $MAIL установлен, но по умолчанию система информирует вас только о /var(/spool)/mail.)

Обычно файл спула находится в очень простой Mbox формате, поэтому вы можете открыть его в текстовом редакторе или пейджере.

Для немного более удобного способа большинство дистрибутивов поставляется с программой, называемой mail (или Mail, mailx). Можешь попробовать mutt или alpine; вы даже можете настроить его для отправки во внешний почтовый ящик. (См. «Это настоящая почта?» Ниже.)

Что он содержит, и кто / что его отправил?

Чаще всего сообщения содержат вывод заданий cron или отчет о безопасности системы Logwatch, или аналогичный мусор. Прочтите его и узнайте.

Насколько это важно?

Зависит от содержания каждого сообщения.

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

Это даже настоящая «почта» в том же смысле, что и электронная почта? Или это только моя система говорит мне что-то?

Да, для обоих - он генерируется вашей системой, сообщая вам что-то, но это также актуальная электронная почта и может обрабатываться как таковая.

Вы можете (и должны) настроить ваше почтовое программное обеспечение - «MTA» aka /usr/sbin/sendmail - пересылка сообщений на ваш личный почтовый адрес. Точные инструкции различаются в зависимости от того, какой MTA (если таковой имеется) вы установили, будь то персональный компьютер или сервер, независимо от того, имеете ли вы свой собственный домен или используете @ gmail.com, и так далее.

Обратите внимание, что /usr/sbin/sendmail в настоящее время является общим API и не обязательно означает исходный Sendmail MTA. На самом деле, вы не должен используйте Sendmail, но что-то более современное, например OpenSMTPD, Postfix или Exim4. Все они обеспечивают одинаковые /usr/sbin/sendmail но они легче настроить, более безопасно и так же мощно.


306
2017-07-04 16:30



Хороший ответ. Если бы вы добавили ссылки с информацией о том, как настроить OpenSMTPD, Postfix или Exim4 для пересылки почты на ваш обычный адрес электронной почты, это было бы еще лучше. - imolit
Вот связанный вопрос, который показывает, как настроить остолоп: askubuntu.com/a/499335/75735 - KalenGi
Отличный ответ. Но как я могу использовать mail читать электронную почту? страница руководства не говорит. - jpaugh
Я просмотрел свою почту с помощью команды cat / var / mail / $ USER и удалил ее с помощью команды rm -rf / var / mail / $ USER. - Sinan Eldem
@grawity следует удалить файлы в /var/mail/ когда я читаю их или просто очищаю текст внутри них? Спасибо! - yaylitzis


Самый простой способ для меня состоял в следующем:

cat /var/spool/mail/root

178
2017-11-25 11:46



Лучший практический ответ до сих пор, который фактически добавляет знания. Теперь я могу прочитать почту. Интересно, почему это самый нижний ответ. - CDR
Я понимаю, что это довольно старый вопрос / ответ, но этот XKCD имеет отношение к обсуждению. (подсказка: текст наведения) - Blackhawk
Или просто less $MAIL если вы хотите перемещаться. - Walf
Или less +G $MAIL для начала в конце. - Charlie Gorichanaz
@Blackhawk И теперь еще больше этот XKCD, - dessert


Просто для того, чтобы дать некоторые пояснения, в течение долгого времени для ящиков UNIX существовала возможность запуска «локально настроенного» почтового редактора, который не маршрутизирует сообщения через Интернет, а только копирует сообщения другим каталогам спутников пользователей (как @John T упоминается). Это настоящая SMTP-совместимая электронная почта, она просто не маршрутизируется через Интернет, потому что это не обязательно.

Итак, если вы запускаете почтовый клиент (например, alpine или mutt) вы можете отправлять почту другим пользователям в системе, обратившись к user@hostname, или во многих случаях, просто указывая пользователя. Вероятно, у вас также есть утилита командной строки, называемая mailx который можно использовать для отправки быстрого письма с помощью оболочки.

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


36
2017-07-04 16:31





Для тех, кто задается вопросом, как читать эти сообщения один за другим, вы можете просто использовать «почту»,

$ mail

Затем введите номер сообщения из списка, который вы хотите прочитать.

Чтобы перейти к следующему сообщению, вы можете ввести «next», другая полезная команда - «удалить».

Чтобы узнать больше о том, как mail программы, см. вывод man mail,


36
2017-08-30 19:47



// Это не работает на CEntOS 6. В этом случае необходимо использовать $ mailx, - Nathan Basanese
На Ubuntu 16.04 мне нужно сначала установить mailutils запустив apt install mailutils - Edwin Yip
В экземплярах Amazon EC2 вы можете установить его, используя sudo yum install mail - JonDoe297
Работает для меня на macOS - juanmirocks


Где эта почта?

Скорее всего, сохранен на вашем компьютере, в папке почтового ящика для вашего пользователя root (где THAT зависит от того, какой почтовый сервер вы установили). Вы, вероятно, можете получить доступ к нему довольно быстро высокогорный,

Что он содержит?

Вероятно, это просто материал типа системного отчета. «Итак, так попробовали войти в систему 10 раз с неправильным паролем». «Я хочу, чтобы кто-то запускал обновления на меня», «driver  такое-то постоянно терпит неудачу »,« Босс NSA увеличил производительность на 1% »и т. д.

Кто / что отправил?

Услуги на вашем сервере, скорее всего.

Насколько это важно?

Зависит от того, насколько важен ваш сервер.


23
2017-07-04 15:29



Я думаю, что предложение Джона о том, что оно хранится в / var / spool / mail / root, основано на (хорошем) предположении, что вы используете sendmail. Я думаю, что другие почтовые серверы используют разные места для хранения почты. - James T Snell
Есть ли способ для пользователей использовать почтовую подсистему? - n0pe
Белый Феникс: Я буду смотреть, когда моя почта, когда я получу сообщение снова :) Есть ли способ для меня вызвать его или это слишком локализован вопрос? - n0pe
Если вы хотите исследовать запуск собственного почтового сервера (который люди используют в типичном смысле электронной почты), он сначала поможет узнать, какой дистрибутив вы используете? Без этой информации все, что я скажу, это то, что я предлагаю вам читать в sendmail (как вы, вероятно, уже запускаете sendmail). - James T Snell
Большинство из них работают под управлением AIX, но я хотел бы изучить это на своей рабочей станции дома под управлением OpenSuSe - n0pe


Эта почта обычно находится в /var/spool/mail/root когда настроен (обычный) по умолчанию sendmail-демона. Он содержит сообщение электронной почты RAW, которое может быть прочитано mail утилита. Кто его отправил, можно найти, запустив mail утилиты и пейджинга через сообщения или чтения RAW-заголовков.

Важность сообщения обычно зависит от предыдущего фактора, который его отправил :)

Многие системные утилиты будут использовать почтовую подсистему в качестве средства отчетности и ведения журнала. Утилиты просмотра журналов и другие службы могут отправлять электронное письмо локальному пользователю root в качестве напоминания о конкретном событии, например о нехватке места на диске или аппаратных ошибках. Демон почтовой программы также предупредит вас, если он не смог отправить исходящий адрес электронной почты.


13
2017-07-04 15:28



Есть ли способ увидеть, как настроена моя почтовая подсистема? - n0pe
@Max sendmail.mc файловый контроль конфигурации демона sendmail при большинстве установок по умолчанию. Он обычно находится под /etc/mail, - John T
@Max Я бы настоятельно рекомендовал прочитать учебник, например, linuxhomenetworking.com/wiki/index.php/... чтобы помочь вам настроить демона почтовой программы по своему усмотрению. - John T
На ubuntu 16.4., У меня есть /etc/mail.rc которая не связана с sendmail - Timo


less +G /var/spool/mail/root

показывает последние письма, в конце, если файл.

Непосредственное отображение почтового файла - хорошая идея, но использование cat может легко ошибиться. Ты не хочешь все прокрутки писем, если в файле много сообщений или очень длинных сообщений. Я только что видел один с 150 МБ, два миллиона линий.

Если вы не root:

sudo less +G /var/spool/mail/root

+G опция используется для отображения самого нового сообщения; Это не вверху файла, а в конце.

Это вариант less, чтобы показать последнюю страницу файла после запуска. Это показывает последнее сообщение (самое новое), если оно подходит к одной странице, или конец этого в противном случае.

Имя файла может быть /var/spool/mail/mail вместо /var/spool/mail/root


10
2017-09-03 00:16



//, Отличная разбивка. Этот ответ был бы особенно полезен для тех людей, которые не легко знают, что делать с файлом. - Nathan Basanese
Если кто-то еще задается вопросом, +G «меньше всего изначально отображает каждый файл, начинающийся в конце, а не в начале». (linux.die.net/man/1/less) - Sam
@Sam Спасибо, уточнил еще кое-что. - Volker Siegel