有时候,当我登录到一个框并以“ su”为根时,会收到一条可爱的小消息,说我有邮件(感谢上帝,它不是AOL)。


这封邮件在哪里?
其中包含什么?
谁/发给谁?
它有多重要?

与电子邮件一样,这甚至是实际的“邮件”吗?

编辑:关于这个问题,我是否可以使用sendmail程序向自己发送邮件,例如:email@localhost

评论

我在其中有一条消息,上面写着“此文本是您的邮件文件夹内部格式的一部分,...”,因此,当然,每当我登录时,都会被告知我已收到邮件。

@GEdgar:这通常意味着您应该停止使用mbox邮箱并迁移到Maildir :)

相关:superuser.com/questions/149282/…

如何转发邮件:unix.stackexchange.com/questions/26666/…

万一有人在看,这里是powerhshell一线将其拆分为Outlook可读的单个文件:$ i = 0;(gc。\ mail \ root -raw)-split'[^,] From'|%{$ i ++; sc mail $ i.eml -value(“ From” + $ _)}

#1 楼

这封邮件在哪里?

可能在假脱机文件中:/var/mail/$USER/var/spool/mail/$USER是Linux和BSD上最常见的位置。

(其他位置也是可能的-检查如果设置了$MAIL –但默认情况下,系统仅通知您有关/var(/spool)/mail的信息。)

通常,假脱机文件采用非常简单的mbox格式,因此您可以在文本编辑器或分页器中打开它。

为了稍微方便一些,大多数发行版都附带一个名为mail(或Mailmailx)的程序。您可以尝试muttalpine;您甚至可以将其配置为发送到外部邮箱。 (请参阅下面的“这是真实邮件吗?”。)

其中包含什么,以及谁/发送给谁?

大多数情况下,消息包含cron作业的输出,或Logwatch发出的系统安全报告或类似的垃圾邮件。阅读并找出答案。

它有多重要?

很大程度上取决于每条消息的内容。

您至少应该扫描一下主题标头–人们常常忽略邮件达数月之久,才意识到自己的日常cron工作会失败。

与电子邮件一样,这甚至是实际的“邮件”吗?还是只是我的系统告诉我一些信息?

两者都可以-它是由您的系统告诉您的东西生成的,但是它也是真实的电子邮件,可以这样处理。

您可以(并且应该)配置您的邮件软件–“ MTA”,也称为/usr/sbin/sendmail –将邮件转发到您的个人邮件地址。确切的说明会有所不同,具体取决于安装的MTA(如果有),这是个人计算机还是服务器,您是否拥有自己的域或使用@ gmail.com,等等。

请注意,/usr/sbin/sendmail现在是共享的API,并不一定意味着原始的Sendmail MTA。实际上,您不应使用Sendmail,而应使用OpenSMTPD,Postfix或Exim4等更现代的工具。它们都提供相同的/usr/sbin/sendmail工具,但它们更易于配置,更安全且功能强大。

评论


好答案。如果您添加了有关如何配置OpenSMTPD,Postfix或Exim4以将邮件转发到您的普通电子邮件地址的信息的链接,那就更好了。

–imolit
2015年6月4日15:32

这是一个相关的问题,展示了如何设置Mutt:askubuntu.com/a/499335/75735

– KalenGi
16年11月8日在10:31

好答案。但是,如何使用邮件阅读电子邮件?联机帮助页没有说。

– jpaugh
17年9月19日在21:39

我使用cat / var / mail / $ USER命令查看了我的邮件,并使用rm -rf / var / mail / $ USER命令将其删除了。

– Sinan Eldem
17年11月26日在9:04



@grawity当我阅读文件时应该删除/ var / mail /中的文件还是清除其中的文本?谢谢!

– Yaylitzis
18年2月6日在13:27

#2 楼

对我而言,最简单的方法是在终端中运行以下命令:

cat /var/spool/mail/root


评论


到目前为止,最实用的答案实际上可以增加知识。现在我可以阅读邮件了。我不知道为什么这是最底层的答案。

–CDR
2012年11月29日在16:44

我意识到这是一个很老的问题/答案,但是此XKCD与讨论有关。 (提示:悬停文字)

–黑鹰
2014年5月7日在21:05



或者,如果要导航,则只需减少$ MAIL。

–沃尔夫
16年6月14日在2:13

或更少+ G $ MAIL开始。

– Charlie Gorichanaz
17年7月18日在1:40

@Blackhawk现在这个XKCD甚至更多。

–甜点
17-10-21在8:55

#3 楼

对于想知道如何逐一阅读这些消息的任何人,您都可以使用'mail'

$ mail


,然后从列表中键入要阅读的消息号。

要转到下一条消息,可以键入“ next”,另一个有用的命令是“ delete”。.

要了解有关mail程序如何工作的更多信息,请参见输出代表man mail

评论


//,这在CEntOS 6上实际上不起作用。在这种情况下,必须使用$ mailx。

– Nathan Basanese
16年1月16日在0:06



在Ubuntu 16.04上,我需要先通过运行apt install mailutils来安装mailutils。

–叶德文
16年7月17日在4:01

在Amazon EC2实例上,您可以使用sudo yum install mail安装它

–JonDoe297
17 Dec 20 '21:45



在macOS上为我工作

– juanmirocks
18年2月7日在20:08

邮件或mailx不能像宣传的那样工作。这个答案不是很好,请使用mutt。

– Alex Barker
19-10-29在16:01



#4 楼

只是为了澄清一下,UNIX盒运行“本地配置”邮件守护程序已经很长时间了,该守护程序不通过Internet路由消息,而仅将消息复制到其他用户假脱机目录(如@John T提到)。它是真正的SMTP兼容电子邮件,只是因为它不需要通过Internet路由。

因此,如果启动电子邮件客户端(例如alpinemutt),则可以发送通过寻址user@hostname将邮件发送给系统上的其他用户,或者在许多情况下,只需指定用户即可。您还可能有一个名为mailx的命令行实用程序,可用于使用您的Shell发送快速电子邮件。

现在,如果要将消息发送给非已登录系统上的用户,真正的乐趣始于此。您需要配置邮件程序守护程序,以识别外部电子邮件并将其传递给传输代理,配置传输代理,并执行很多我还不了解的工作。

#5 楼

这封邮件在哪里?

很可能存储在您的计算机上,您的根用户的邮箱文件夹中(该位置取决于您安装的邮件服务器的类型)。您可能可以通过alpine快速访问它。

其中包含什么?

可能只是一些系统报告类型的东西。 “某某尝试用错误的密码登录10次”。.“我希望有人在我身上运行更新”,“某某驱动程序不断失败”,“ NSA机器人提高了性能1%”等。

谁/什么发送了它?

您的服务器上的服务很有可能。

有多重要

取决于服务器的重要性。

评论


我认为John的建议是将其存储在/ var / spool / mail / root中,是基于您正在运行sendmail的(良好)假设。我认为其他邮件服务器使用不同的位置来存储邮件。

–詹姆斯·斯内尔(James T Snell)
2011年7月4日15:30

用户是否可以使用邮件子系统?

–n0pe
2011年7月4日在15:31

White Phoenix:我将在再次收到邮件时查看邮件的时间:)有没有办法让我触发它,或者问题太局限了?

–n0pe
2011年7月4日15:32

如果您想探索运行自己的邮件服务器(人们通常在使用电子邮件的方式使用),那么它首先会帮助您了解您正在运行的发行版吗?如果没有这些信息,我只想建议您阅读sendmail(因为您可能已经在运行sendmail)。

–詹姆斯·斯内尔(James T Snell)
2011年7月4日15:32



他们中的大多数人都在运行AIX,但我想在运行OpenSuSe的家庭工作站上进行探索

–n0pe
2011年7月4日15:37

#6 楼

配置(通常)默认的sendmail守护程序后,此邮件通常位于/var/spool/mail/root中。它包含可以由mail实用程序读取的RAW电子邮件。可以通过运行mail实用程序并分页查看消息或读取RAW标头来找到发送消息的人。

消息的重要性通常取决于发送消息的先前因素:)

许多系统实用程序将使用邮件子系统作为报告和日志记录的方式。日志监视程序实用程序和其他服务可能会向本地root用户发送电子邮件,以提醒您有关特定事件的信息,例如磁盘空间不足或硬件错误。如果邮件发送程序无法发送出站电子邮件,它也会提醒您。

评论


有没有办法查看我的邮件子系统的设置?

–n0pe
2011年7月4日在15:29

@Max sendmail.mc文件控制大多数默认安装上sendmail守护程序的配置。它通常位于/ etc / mail下。

– John T
2011年7月4日15:34



@Max我强烈建议您通读linuxhomenetworking.com/wiki/index.php/…之类的教程,以帮助您根据需要配置邮件程序守护程序。

– John T
2011年7月4日15:39

在Ubuntu 16.4上,我有/etc/mail.rc,它与sendmail无关

– Timo
17/12/24在10:18



#7 楼

less +G /var/spool/mail/root

显示最新的邮件,如果文件末尾显示。

直接显示邮件文件是一个好主意,但是使用cat容易出错。如果文件中有很多邮件或很长的邮件,您不希望所有邮件都滚动。我刚刚看到一个150MB,200万行的文件。

如果您不是root用户:

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

+G选项用于首先显示最新消息;它不在文件的顶部,而是在文件的末尾。

它是less的一个选项,使它在启动后显示文件的最后一页。如果适合一页,则显示最后一条消息(最新),否则显示末尾。

文件名可能是/var/spool/mail/mail而不是/var/spool/mail/root

评论


//,极好的击穿。对于那些不容易知道如何处理文件的人,此答案特别有用。

– Nathan Basanese
16年1月16日,0:20

万一其他人想知道,+ G“可以减少从头开始而不是从头开始显示每个文件的时间。” (linux.die.net/man/1/less)

–山姆
16年11月24日在14:03