我需要使用fetchmail从邮件帐户下载所有邮件。
当我尝试使用POP3时,我可以使用以下格式正确下载所有邮件:
[root@srv root]# ls /home/mail_import/MAIL_USER/new/
1453828024.7837_0.srv
1453828029.7843_0.srv
但是pop3协议不允许选择文件夹,所以我需要使用IMAP。
使用IMAP时无法单独下载邮件。我试过,我有一个包含所有邮件的文件。
例如:
[root@srv home]# stat /home/mail_import/MAIL_USER/teste
File: ‘/home/mail_import/MAIL_USER/teste’
[root@srv home]# head /home/mail_import/MAIL_USER/teste
From root@SRV Tue Jan 26 18:56:31 2016
Return-path: <root@SRV >
Envelope-to: MAIL_USER@SRV
Delivery-date: Wed, 02 Dec 2015 15:47:00 -0500
我需要在pop3等单独的文件中使用imap下载所有邮件。
我的.fetchmailrc
是:
set bouncemail
set no spambounce
set softbounce
set properties ""
defaults:
antispam -1
batchlimit 100
poll DOMAIN with proto IMAP
user 'USER' there with password 'PASS' is 'MAIL' here
options keep fetchall ssl mda "/usr/bin/procmail -f %F -d %T";
folder INBOX
我的.procmailrc
是:
MAILDIR=/home/mail_import/MAIL_ACCOUNT
DEFAULT=$MAILDIR/INBOX
LOGFILE=/var/log/procmail
LOCKFILE=$MAILDIR/.default.lock
VERBOSE=on
:0 fhw
|formail
#
## Any other rules the user wishes to either include with INCLUDERC,
## or hardcode into this file, would go here.
## --------------------------------------------------------------------------
## If we're here, the mail didn't match any other rules, so deliver normally.
:0:
$DEFAULT
## If that fails, report an error and throw the mail away.
EXITCODE=75
:0
/dev/null
有一些正确的选项可以使用IMAP单独下载POP3来下载电子邮件吗?
答案 0 :(得分:0)
我不明白为什么你在这里使用Procmail。只需运行Fetchmail并让它获取您的邮件。以合适的格式指定目标文件夹,然后转到。
电子邮件是否是单独的文件不是协议的功能。这是您使用的交付计划的一项功能;如果您选择传递到文件(Berkeley mbox
格式;您在此处看到的内容,在每条消息的开头都有From_
行),则所有消息都将传递到单个文件。如果您传送到文件夹(例如,使用maildir格式,使用new
tmp
cur
子目录),您将获得所要求的结果。只需执行任何操作即可将POP3消息放入maildir文件夹MAIL_USER
,只能使用imap
代替pop3
,并且您已完成设置。
如果您特别想在Procmail中执行此操作,请更改
DEFAULT=$MAILDIR/INBOX
到
DEFAULT=$MAILDIR/
但是你的整个.procmailrc
似乎毫无意义。为什么要通过formail
来管道?您所做的操作只是复制了Procmail的默认行为,但存在一些错误。我认为你可以通过弄清楚如何让Fetchmail直接在你想要的地方传递消息来简化你自己的理解和过程。 (但不完全确定它是否支持maildir;快速的谷歌搜索没有结果。如果你用POP3实现这一点,也许根本不指定mda
。)