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

427

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

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

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

EDIT: В связи с этим вопросом, я мог бы послать себе почту , используя Sendmail программы следующим образом: email@localhost?

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

Ответы:

354

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

Скорее всего, это будет в спул-файле: /var/mail/$USERили /var/spool/mail/$USERэто наиболее распространенные места в Linux и BSD.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

cat /var/spool/mail/root
Maclovin
источник
5
Лучший практический ответ на данный момент, который фактически добавляет к знаниям. Теперь я могу читать почту. Интересно, почему это самый нижний ответ?
CDR
37
Я понимаю, что это довольно старый вопрос / ответ, но этот XKCD имеет отношение к обсуждению. (подсказка: текст при наведении)
Блэкхок
11
Или просто less $MAILесли вы хотите ориентироваться.
Уолф
7
Или less +G $MAILначать в конце.
Чарли
4
@ Blackhawk А теперь еще больше это XKCD .
десерт
57

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

$ mail

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

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

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

Доминик Уильямс
источник
3
// Это не работает на CEntOS 6. В этом случае нужно использовать $ mailx.
Натан Басанезе
6
В Ubuntu 16.04 мне нужно сначала установить mailutils, запустивapt install mailutils
Edwin Yip
На инстансах Amazon EC2 вы можете установить его с помощьюsudo yum install mail
JonDoe297
1
У меня работает на macOS
juanmirocks
39

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

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

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

LawrenceC
источник
24

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

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

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

Вероятно, просто некоторые вещи типа системного отчета. «То и дело пытались войти в систему 10 раз с неверным паролем» .. «Хотелось бы, чтобы кто-нибудь запускал обновления для меня», «Драйвер такой-то постоянно терпит неудачу», «Бот NSA повысил производительность на 1%» .. и т.д..

Кто / Что послал это?

Сервисы на вашем сервере, скорее всего.

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

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

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

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

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

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

Джон Т
источник
Есть ли способ увидеть, как настроена моя почтовая подсистема?
n0pe
@ Max sendmail.mcфайл управляет настройкой демона sendmail при большинстве установок по умолчанию. Как правило, находится под /etc/mail.
Джон Т
@Max Я бы настоятельно рекомендовал прочитать учебник, такой как linuxhomenetworking.com/wiki/index.php/…, чтобы помочь вам настроить демон почтовой программы по своему усмотрению.
Джон Т
На Ubuntu 16.4., У меня есть /etc/mail.rcчто не связаноsendmail
Тимо
12

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

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