-3

我需要使用 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

我需要使用 imap 将所有邮件下载到单独的文件中,例如 pop3。

.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 下载电子邮件吗?

4

1 回答 1

0

我根本不明白你为什么在这里使用 Procmail。只需运行 Fetchmail 并让它获取您的邮件。以合适的格式指定目标文件夹,然后继续。

电子邮件消息是否是单独的文件不是协议的一个特性。这是您使用的交付程序的一项功能;如果您选择传递到文件(伯克利mbox格式;您在此处看到From_的内容,每条消息的开头都有一行),那么所有消息都将传递到一个文件中。如果您传送到一个文件夹(以 maildir 格式,例如,带有new tmp cur子目录),您将得到您要求的结果。只需执行您所做的将 POP3 消息放入 maildir 文件夹的MAIL_USER操作,仅使用imap而不是pop3,就可以了。

如果您特别想在 Procmail 中执行此操作,请更改

DEFAULT=$MAILDIR/INBOX

DEFAULT=$MAILDIR/

但你的全部.procmailrc似乎毫无意义。你为什么要管东西formail?您所做的操作只是复制了 Procmail 的默认行为,但有几个错误。我认为您可以通过弄清楚如何让 Fetchmail 将邮件直接发送到您想要的地方来简化您自己的理解和流程。(不过,不完全确定它是否支持 maildir;快速谷歌搜索是不确定的。mda如果这是您使用 POP3 实现这一点的方式,也许根本不要指定。)

于 2016-01-27T07:57:12.403 回答