Shell 显示我有邮件,但如何查看它

Shell 显示我有邮件,但如何查看它

当我启动 shell 时,它会显示该消息You have mail.,这是因为我touch编辑了一个文件/var/mail/${USER}并向其写入内容。

但我该如何检查呢?我用mail,但它显示了我No mail for USERNAME。我使用它mail -s 'subject' USERNAME <<< 'message',但它没有出现在/var/mail/USERNAME.如何检查我的邮件路径是什么,如何mail确定我的邮件路径是什么?

答案1

mailmailx和其他 MUA 预计/var/mail/${USER}将在mbox 格式 (RFC 4155)。我想象当他们看到他们不期望的数据时,他们的行为是不确定的,但他们很可能会忽略它,给你你所看到的行为。

当您尝试发送邮件时,系统的邮件传输代理(例如 sendmail 或 postfix)将处理其传输。如果配置不正确,消息将永远不会到达。您可能想查看root的邮箱和/var/log/mail.log(或系统上的任何内容)。

答案2

显示 /var/mail/root 中的邮件(例如 ${USER} = root):

> cat /var/mail/root
From [email protected]  Thu May 12 05:05:02 2016
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Received: by tratata.com (Postfix, from userid 0)
    id 5E5351414E1; Thu, 12 May 2016 05:05:02 +0300 (EEST)
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <root@webdev> php /webpub/tratata.com/cron.php review
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <[email protected]>
Date: Thu, 12 May 2016 05:05:02 +0300 (EEST)

PHP Warning:  mysql_query() expects parameter 2 to be resource, boolean given in /webpub/wtratata.com/cron.php on line 126
PHP Warning:  mysql_query() expects parameter 2 to be resource, boolean given in /webpub/tratata.com/cron.php on line 126

从 /var/mail/root 清除邮件

root@hostname:~# > /var/spool/mail/root

不要忘记包含该>标志,否则它将无法工作。

相关内容