web-dev-qa-db-ja.com

元の日付/時刻を保持するためのFetchmail

私は自分のIMAPを設定していて、過去9年間に受信したメールを自分のサーバーに収集する必要があります(そして、いくつかのメールボックスから継続的に同期する必要があります)。

空のメールボックスにテストアカウントを使用してfetchmailを正常に設定しました。ターゲットメールボックスにメールを送信するたびに、POP3経由でボックスに受信されます。 しかし Windows Mailに配信されたメッセージに、fetchmailが実行された日時が表示されていることがわかりました。これは新着メールには適切ですが、履歴の追跡には実際には不適切です。

私の.fetchmailrcファイル現在 *が表示されます

set invisible

poll pop.fastwebnet.it proto imap
        user "redacted" pass "redacted" fetchall
        mda "/usr/lib/dovecot/deliver"

私の受信トレイは、Postfix&DovecotをMaildir形式で使用して構成されています。 maildirに同期するとメッセージが削除されるため、fetchmailにPOP3を選択しました。

Maildirにドロップされた新着メールは、日付と時刻を参照して、サーバーで見つかったものと正確に一致する必要があることをfetchmailに伝えるにはどうすればよいですか?

つまり、9年間のメールを蓄積した[email protected]からの履歴を同期しようとすると、それらはすべて今日の日付になります。

たとえば、14:59頃に[email protected]にテストメールを送信し、fastwebnet.itでウェブメールを開いて14:59が「公式」時間であることを確認してから、次のサーバーからfetchmailを実行しました。 15:30。 Windows Mailは、電子メールの時刻が14:59ではなく15:30であることを示しました。

更新

コメントとドキュメントを読むと、fetchmailは通常メールの上部にReceivedヘッダーを追加しているため、クライアントはメールが新品であることを検出します。

また、今回はIMAPを使用して、詳細モードでfetchmailを実行しました。デフォルトではSMTP経由でメールをドロップするようですので、そこに問題があります。サーバーがSMTP経由でMaildirにドロップされるメールを受信した場合、そのメールは新品であると見なされます。

*元の文章から質問を更新しました

Windows Mailによってユーザーに公開された日付は、Dateヘッダーフィールドからではなく、最新のReceivedフィールドからのものであるようです(Receivedフィールドは主に RFC5321 および RFC5322 で説明されているように、配信ゲートウェイを介してメッセージをトレースします。

Fetchmailがメッセージを配信するとき、(SMTPを使用しない)mdaオプションを使用しても、デフォルトでは、現在の日付と時刻を含む独自のReceivedフィールドが追加されます。

幸い、これを無効にするオプションがあります。

-invisibleオプション(キーワード:set invisible)は、fetchmailを非表示にしようとします。通常、fetchmailは他のMTAと同じように動作します。つまり、送信チェーン内での位置を説明する各メッセージにReceivedヘッダーを生成し、fetchmail自体が実行されているマシンからメールが送信されたことをMTAに通知します。 invisibleオプションがオンの場合、Receivedヘッダーは抑制され、fetchmailは転送先のMTAをスプーフィングして、メールサーバーホストから直接送信されたと見なそうとします。

このオプションをSMTP以外の配信、たとえば--mda /usr/lib/dovecot/deliverと組み合わせたいと思います。そうしないと、SMTPサーバーはfetchmailの後に独自のReceivedフィールドを追加する可能性があります。

2
Daniel Vérité

質問の範囲はメールボックスの「最初の」履歴移行を実行することだったので、ここでは異なりますbrute forceアプローチ:メールを古いIMAPから新しい受信トレイに移動します。それ以降、fetchmailデーモンはnewメールで正常に動作します

クライアント経由(例:Outlook)

両方のメールボックスを同期し、すべて(またはグループ)の電子メールを選択して、新しい受信ボックスにドラッグアンドドロップまたはカットアンドペーストします。これには時間と手作業が必要ですが、特にグループでメールを移動する場合は、まったくまたはほとんどダメージを与えることができません

ダンプ経由

サーバーにアクセスできるので、 imap2maildir などのツールでIMAPボックスをMaildir互換ボックスにダンプできます。元のMaildirを新しいMaildirとマージすると、メッセージ収集が正しく初期化されます

他の特定の商用ツールを介して

IMAPの移行/同期用に作成されたツールはたくさんあります。ボックスパスワードを提供する必要があるオンラインツールもあり(セキュリティのため、移行中にパスワードを一時的なものに変更できます)、個人データを保持しないようにサービスを信頼する必要があります。