使用带有fetchmail的IMAP下载邮件

时间:2016-01-26 19:24:53

标签: email imap pop3 procmail fetchmail

我需要使用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来下载电子邮件吗?

1 个答案:

答案 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。)