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

458908
n0pe

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

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

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

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

382
У меня есть одно сообщение там, которое говорит: «Этот текст является частью внутреннего формата вашей почтовой папки, ...», поэтому, конечно, всякий раз, когда я вхожу в систему, мне сообщают, что у меня есть почта. GEdgar 13 лет назад 0
@GEdgar: Обычно это означает, что вы должны прекратить использование почтовых ящиков * mbox * и перейти на * Maildir * :) grawity 13 лет назад 1
Связанный: http://superuser.com/questions/149282/safely-get-rid-of-you-have-new-mail-in-var-mail-on-a-mac dmckee 13 лет назад 0
Как переслать почту: https://unix.stackexchange.com/questions/26666/can-i-change-roots-email-address-or-forward-it-to-an-external-address Melebius 7 лет назад 0
В случае, если кто-то ищет, вот одна строчка Powerhshell, которая разбивает его на отдельные файлы, читаемые outlook: `$ i = 0; (gc. \ Mail \ root -raw) -split '[^,] From' |% { $ i ++; sc mail $ i.eml -value ("From" + $ _)} ` JDuarteDJ 6 лет назад 0
лол нообкейк :) Ярослав Рахматуллин 5 лет назад 0

7 ответов на вопрос

320
grawity

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

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

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

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

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

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

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

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

В значительной степени зависит от содержания каждого сообщения.

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

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

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

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

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

Хороший ответ. Если бы вы добавили ссылки с информацией о том, как настроить OpenSMTPD, Postfix или Exim4 для пересылки почты на ваш обычный адрес электронной почты, это было бы еще лучше. imolit 9 лет назад 3
Вот связанный вопрос, который показывает, как настроить ** mutt **: http://askubuntu.com/a/499335/75735 KalenGi 7 лет назад 1
Отличный ответ. Но как мне использовать `mail` для чтения электронной почты? [Manpage] (http://manpages.ubuntu.com/manpages/xenial/en/man1/mail.mailutils.1.html) не говорит. jpaugh 7 лет назад 0
Я просмотрел свою почту с помощью команды cat / var / mail / $ USER и удалил ее с помощью команды rm -rf / var / mail / $ USER. Sinan Eldem 6 лет назад 1
@ grawity я должен удалить файлы в `/ var / mail /`, когда я их читаю, или просто очистить текст внутри них? благодарю вас! yaylitzis 6 лет назад 0
Это `sendmail`, который был написан ESR? Adam Arold 5 лет назад 0
@AdamArold: нет по обоим пунктам. «Оригинальный Sendmail» не был написан ESR, насколько я знаю. В настоящее время путь `/ usr / sbin / sendmail` не относится к какому-либо конкретному программному обеспечению, но вместо этого представляет собой стандартное имя файла, предоставляемое дюжиной различных реализаций от разных авторов. grawity 5 лет назад 0
186
Maclovin

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

cat /var/spool/mail/root 
Лучший практический ответ на данный момент, который фактически добавляет к знаниям. Теперь я могу читать почту. Интересно, почему это самый нижний ответ? CDR 11 лет назад 5
Я понимаю, что это довольно старый вопрос / ответ, но [этот XKCD] (http://xkcd.com/838/) имеет отношение к обсуждению. (подсказка: наведите текст) Blackhawk 10 лет назад 36
Или просто «меньше $ MAIL», если вы хотите перемещаться. Walf 8 лет назад 9
Или `less + G $ MAIL`, чтобы начать в конце. Charlie Gorichanaz 7 лет назад 3
@ Blackhawk А теперь еще больше [этот XKCD] (https://xkcd.com/1728/). dessert 7 лет назад 4
43
Dominic Williams

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

$ mail 

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

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

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

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

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

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

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

23
James T Snell

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

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

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

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

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

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

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

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

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

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

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

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

Есть ли способ увидеть, как настроена моя почтовая подсистема? n0pe 13 лет назад 0
@Max the `sendmail.mc` file controls configuration of the sendmail daemon on most default installs. It is typically located under `/etc/mail`. John T 13 лет назад 0
@Max Я бы настоятельно рекомендовал прочитать учебник, такой как http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch21_:_Configuring_Linux_Mail_Servers#The_.2Fetc.2Fmail.2Fsendmail.mc_File, чтобы настроить демона почтовой программы. по желанию. John T 13 лет назад 0
В Ubuntu 16.4. У меня есть `/ etc / mail.rc`, который не связан с` sendmail` Timo 6 лет назад 0
11
Volker Siegel

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

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

Похожие вопросы