【问题标题】:Download mail using IMAP with fetchmail使用 IMAP 和 fetchmail 下载邮件
【发布时间】:2016-05-03 12:11:25
【问题描述】:

我需要使用 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 分别下载电子邮件有正确的选择吗?

【问题讨论】:

  • 嗯,我将 procmail 更改为:CORRECTHOME=/home/mail_import/ MAILDIR=$CORRECTHOME/ PMDIR=/home/mail_import/ LOGFILE=$PMDIR/log VERBOSE=on :0 Mail/ 和 mda 到 mda “/usr/bin/procmail” 和工作:D
  • 不是编程问题;提名迁移到superuser.com

标签: email imap pop3 procmail fetchmail


【解决方案1】:

我根本不明白你为什么在这里使用 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;快速谷歌搜索是不确定的。如果这就是您使用 POP3 实现这一点的方式,也许根本不要指定 mda。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 2011-09-06
    • 1970-01-01
    • 2011-12-21
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多