我正在设置一个fetchmail
从命令行调用的系统,并指定将邮件存储在一个特定的文件中,该文件不是/var/spool/mail/$USERNAME
.
答案1
默认情况下,fetchmail 调用本地邮件传输代理 (MTA)。这是您需要配置的程序来设置用户邮箱的位置。如果您想要更改特定用户邮件的投递位置,大多数 MTA 会读取名为.forward
在你的主目录中。您可以在自己的文件中放置不同的路径~/.forward
(仅一行包含您希望将邮件传递到的邮箱文件的完整路径)。
/home/handygandy/mail/incoming
您还可以|someprogram
在~/.forward
文件中写入来调用邮件递送代理 (MDA),即读取邮件并根据自定义规则确定如何处理邮件的程序。两个流行的 MDA 是程序邮件和邮件投递。
如果您仅通过 fetchmail 接收邮件,而不是通过本地 MTA,则可以告诉 fetchmail 直接调用 MDA。-m
在命令行上传递选项或mda
使用~/.fetchmailrc
.例如,直接将邮件发送到的一种方法是~/mail/incoming
输入,并包含以下内容:mda procmail
~/.fetchmailrc
~/.procmailrc
DEFAULT=$HOME/mail/incoming
或者放入mda maildrop
并~/.fetchmailrc
有一个~/.mailfilter
由以下组成的
DEFAULT=$HOME/mail/incoming
(procmail 和 maildrop 配置文件之间的相似之处并不多。)
答案2
IIRC fetchmail 不会写入邮箱 - 默认情况下它使用本地主机上的 SMTP 或配置的 SMTP 服务器或配置的 MDA。
我假设您尚未配置 MTA,因为您询问的是文件位置。但是,您使用的邮件文件的非标准位置意味着您已经配置了 MDA - 只需使用它即可。有关详细信息,请参阅 fetchmail 手册页。