【问题】
提示:You have new mail in /var/spool/mail/root
这是Linux系统所发出的邮件来提醒用户系统中出了哪些问题(收件箱位置:/var/mail/)。这些邮件都是发送给 root 用户的。
查看方法:
如果报错:
-bash: mail: command not found
参考:https://forums.cpanel.net/threads/mail-command-not-found.94853/
参考:https://crybit.com/mail-command-not-found/
参考:https://www.centos.org/forums/viewtopic.php?t=39647
【安装】
需要安装 mailx :
CentOS系统:
yum -y install mailx
Ubuntu系统:
apt-get install mailutils bsd-mailx
【使用】
查看方法:
然后输入你要看的邮件的编号,即可查看指定编号的邮件内容。
【进阶】
出于系统安全考虑,不建议直接使用 root 帐户进行日常操作。可以让系统把发给 root 用户的邮件也给指定的外部邮箱发一份,或者是直接关闭此项服务。
1、关闭sendmail服务
最直接的方式是关闭sendmail服务。但以下方法也可以不用关闭sendmail服务实现效果。
echo "unset MAILCHECK" >> /etc/profile source /etc/profile
关闭sendmail的功能:
chmod 0 /usr/sbin/sendmail mv /usr/sbin/sendmail /usr/sbin/sendmail.bak ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
清空 /var/spool/mail/root日志:
cat /dev/null > /var/spool/mail/root cat /dev/null>;/var/spool/mail/root
2. root邮件转发到外部邮箱
方法一:修改文件 /etc/log.d/logwatch.conf
添加 MailTo = root,[email protected]
方法二:修改文件 /etc/aliases
添加 root: [email protected]
注意:如果设置成和主机同域的,好像邮件就发不成,比如本机邮件就是moper.me,那么发这个就没法发,相应的发其他邮箱就可以成功。
关于“/etc/aliases”:
当sendmail收到一个要送给xxx的信时,它会依据/etc/aliases文件中的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list就会用到这个功能,在 mailing list 中,我们可能会创造一个叫 [email protected]的 mailinglist,但实际上并没有一个叫redlinux的使用者。实际 aliases档的内容是将送给这个使用者的信都收给mailing list处理程式负责分送的工作。
/etc/aliases是一个文本文档,而sendmail需要一个二进位格式的 /etc/aliases.db。newaliases的功能传是将/etc/aliases转换成一个sendmail所能了解的db文件:
newaliases
除root外的其它用的邮件可以通过在用户/home/下建立一个.forward文件实现转发:
//somebody other1 other2
文件权限设为600,作用一样,但.forward可以由用户自行维护,而aliases则只有管理员才能修改。
设定~/.forward档案加入转寄邮箱即可。