当我启动 shell 时,它会显示该消息You have mail.
,这是因为我touch
编辑了一个文件/var/mail/${USER}
并向其写入内容。
但我该如何检查呢?我用mail
,但它显示了我No mail for USERNAME
。我使用它mail -s 'subject' USERNAME <<< 'message'
,但它没有出现在/var/mail/USERNAME
.如何检查我的邮件路径是什么,如何mail
确定我的邮件路径是什么?
答案1
mail
、mailx
和其他 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
不要忘记包含该>
标志,否则它将无法工作。