我是一名研究生,也是一个相对的Linux新手。这个问题是一个衍生问题我之前的问题。我的机构有一个 Ubuntu Linux 集群。我只是一个用户;我没有系统管理员权限,而且我当然也不具备成为系统管理员的专业知识!
我的问题是,如何找到我的本地邮件池?据我所知,我没有使用邮件传输代理。 我之前的问题的答案建议我寻找一个文件/var/spool/mail/$USER
,但不幸的是,我没有看到与我的用户名对应的文件。在 中/var/spool/mail/
,使用ls
我只看到两个文件:nobody
和www-data
,它们都是无扩展名文件。
您对我可以在哪里查找邮件假脱机有任何其他想法(据我所知,这可能是本地的,因为我没有配置邮件传输代理)?
答案1
邮件线轴通常位于此处:
/var/spool/mail/$USER
你的用户名在哪里$USER
。例如在我的 Fedora Linux 系统上:
$ ls -l /var/spool/mail/
total 1908
-rw-------. 1 root root 1943163 Jul 13 12:00 root
-rw-rw----. 1 rpc mail 0 Dec 18 2010 rpc
-rw-rw----. 1 saml mail 689 Jul 12 19:38 saml
然而,邮件线轴不一定是本地的。如果您没有此文件,则您的邮件将保存在另一台服务器上。您可以使用以下协议与此服务器交互IMAP或者POP3。
您的邮件后台正是在此系统上进行维护的。
在某些环境中,邮件假脱机可以作为用户主目录的一部分进行共享,通常位于名为 的目录中mail
($HOME/mail)
。其他时候,它可以作为自己的共享在类似的东西下共享/mail/users/$USER
。
这实际上取决于给定环境中的系统管理员如何选择这样做。
答案2
除非您的计算机配置错误,否则该命令mail
(或其他邮件程序,例如mutt
)将访问您的本地邮箱。通常本地邮箱是/var/spool/mail/$USER
或/var/mail/$USER
。如果邮箱位于非标准位置,系统管理员可能已将系统配置为将MAIL
环境变量设置为您邮箱的位置。
如果您从未在该计算机上收到过邮件,则该文件将不存在。给自己发送一封邮件,文件就会被创建。
如果任何邮件曾经在这台机器上投递过,那么邮件传输代理是跑步。您永远不会直接与 MTA 交互:这是管理员设置的。
这些文件的存在/var/spool/mail/nobody
表明/var/spool/mail/www-data
存在(或曾经)有一个 MTA 在本地运行和传送邮件。它们可能包含来自 cron 作业的报告。
仅当其他计算机配置为接收邮件时,您才能够从该计算机接收邮件。在多计算机环境中,通常配置一台计算机来接收所有邮件。这通过域名系统。如果有一个MX记录对于主机,它指示哪个主机将接收发往该主机的邮件。您可以使用host -t MX $HOSTNAME
或查看 MX 记录dig MX $HOSTNAME
。
即使您在本地接收邮件,也可能会被重定向到另一台计算机。检查你是否有一个名为.forward
在您的主目录中:它包含将您的邮件重定向到的电子邮件地址,或告诉 MTA 在您收到邮件时要做什么的其他指令。.procmailrc
如果 MTA 配置为使用,您可能还拥有一个文件程序邮件投递邮件,这是相当常见的。
答案3
/var/spool/mail/
您应该在(传统位置)或/var/mail
(新推荐位置)找到它。请注意,其中一个可能是另一个的符号链接,因此最好转到实际目录(而不仅仅是链接)。在这里你应该找到一个与你的用户名同名的文件,那就是你的邮箱。它应该归您所有,因此您应该能够轻松复制它。
答案4
您是否检查过是否postfix
配置了邮件传输代理 (MTA)? Postfix 的配置文件通常会有线索。我们的 Postfix 配置文件在这里:/etc/postfix/main.cf
里面有一行这样说:
home_mailbox = Maildir/
这样我们就知道邮件目录 ( Maildir
) 位于每个用户的主目录中。
在我们的例子中,我们使用 Dovecot 作为 IMAP 服务器,因此我们在这些Maildir
目录中看到 Dovecot 文件。我们还看到子目录cur
和new
.如果您的电子邮件客户端尚未打开邮件,它将位于new
目录中。如果已经打开,就会在该cur
目录中。
如果您有不同的邮件设置,则此信息可能会有所不同,但这是一种可能性。