我使用 fetchmail 下载电子邮件,并使用 procmail 作为 mda 进行传递。我希望它们能够与 mh 一起使用,但 procmail 似乎以一种 mh 无法理解的方式传递它们:我得到子目录 new/ cur/ 和 tmp/,其中文件位于 new/ 中,名称类似于 1484079635.67044_0。主机名
如果我将这些文件重命名为整数并将它们向上移动一个目录,mh 会很好地拾取它们。我希望能够自动执行此操作,并保持上次 fetchmail 运行的顺序。
获取邮件配置:
set logfile /path/to/fetchmail.log
set no bouncemail
poll "imap.gmail.com"
protocol imap
username "USER"
password "PASSWORD"
fetchall
keep
ssl
mda "/path/to/procmail -m /path/to/.procmailrc"
进程邮件配置:
LOGFILE=$HOME/procmail.log
VERBOSE=on
DELIVERED=yes
MAILDIR=$HOME/Mail/.
DEFAULT=inbox/
答案1
您DEFAULT=inbox/
说邮件应该发送到 Maildir 邮箱(带有子目录cur
、new
和tmp
)。该邮箱位于$HOME/Mail/.
根据MAILDIR
变量。
要发送到 MH 邮箱,您应该设置DEFAULT
为inbox/.
(注意末尾的点)。MAILDIR
可以设置为$HOME/Mail
.
简而言之:
- 最终邮箱路径
/
最后有:Maildir邮箱 - ...
/.
末尾有:MH邮箱 - ...以上都没有:普通 Unix mbox 邮箱。
请参阅procmailrc(5)
手册。
答案2
接受的答案是正确的,但我想添加一些评论和放大。
您的问题似乎表明您认为 MH 和 Maildir 是一种且相同的格式。他们不是; MH 传统上每个文件夹使用一个目录,而正如您所发现的,Maildir 使用三个子目录;它最初传递到new
,然后移动到tmp
,最后到cur
。
Procmail 本身支持向两者发送邮件。然而,对于 MH,直接传递到目标目录会绕过 MH 的一些有用功能。您可以改为通过管道连接到该rcvstore
程序,该程序提供与 MH 系统更好的整体集成(它将更新关联的控制和缓存文件)。
您不能直接设置DEFAULT
来完成此操作;你需要有一个简单的.procmailrc
东西,比如
:0:foldername.lock
| rcvstore +foldername # from memory it wants a plus, is that right?
这是一个无条件传递操作,锁定指定的锁定文件。
这种方法可以推广到许多其他文件夹格式。即使 Procmail 本身不支持 MBX、Dovecot'sdbox
和各种其他格式,但如果您有一个可以通过管道传输消息的该格式的传送程序,您就可以传送这些格式。
这个答案基本上重申了来自http://www.iki.fi/era/procmail/mini-faq.html#appendix-folders