-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 を実行して、メールを取得するだけです。適切な形式で宛先フォルダーを指定し、移動します。

電子メール メッセージが個別のファイルであるかどうかは、プロトコルの機能ではありません。これは、使用する配信プログラムの機能です。ファイルに配信することを選択した場合 (Berkeleymbox形式。ここにFrom_表示されているもので、すべてのメッセージの先頭に行があります)、すべてのメッセージが 1 つのファイルに配信されます。フォルダーに配信すると (たとえば、new tmp curサブディレクトリを含む maildir 形式で)、求めている結果が得られます。の代わりにMAIL_USERのみを使用して、POP3 メッセージを maildir フォルダーに入れるために行ったことをすべて実行するだけで、準備は完了です。imappop3

特に Procmail でこれを行いたい場合は、次のように変更します。

DEFAULT=$MAILDIR/INBOX

DEFAULT=$MAILDIR/

しかし、あなたの全体は.procmailrc無意味に思えます。なぜあなたは物事をパイプするのformailですか?あなたが持っているアクションは、Procmail のデフォルトの動作を単純に複製したもので、いくつかのバグがあります。Fetchmail を使用してメッセージを必要な場所に直接配信する方法を考え出すことで、理解とプロセスの両方を簡素化できると思います。(ただし、maildir をサポートしているかどうかは完全にはわかりません。簡単なグーグル検索では決定的ではありませんでした。POP3mdaでこれを実現した方法である場合は、まったく指定しないでください。)

于 2016-01-27T07:57:12.403 に答える