さまざまなソースから送信された電子メールを標準形式で保存してバックアップできたらと思います。同様のアプローチは、複数のデバイス(カメラ、スマートフォンなど)から写真を撮って、単一のディレクトリにすべてJPEG形式で保存することです。
アーカイブの問題(KMailまたは私が主に使用している他のクライアントのエクスポート機能を使用)は、バックアップ間で電子メールが失われたかどうかを簡単に確認できないことです。たとえば、バックアップを使用しますrsync
。説明のために、B1とB2という2つのバックアップを保持しているとします。バックアップはマイデータソース(スマートフォンなど)で更新され、B2は数日後にB1で同期されます。 B1からB2への同期を実行するときに詳細モードで練習を実行し、ターゲットモードで関連性のないファイルを削除すると、誤って削除されたアイテムを簡単に見つけることができます。関連は冗長メール導入の問題です。すべての電子メールを保存する賢明な方法はありますか?
答え1
一般的なシナリオでは、(N)MBのディスク容量を占める多数の電子メールの場合、削除内容を取得するには(N)MBのディスク容量が必要ですが、それを回復するには最大(2N)MBのディスク容量が必要です。
私のmbsync
日常cron
業務は、Exchangeでメールをバックアップすることです。ファイルは次のとおりです.mbsyncrc
。
# See http://www.benfrancom.com/2014/11/24/mutt-offline-with-mbsync/
#
IMAPAccount work
Host outlook.office365.com
User [email protected]
Pass donteventhinkaboutit
# PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.mailpass.gpg"
UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt
PipelineDepth 5
IMAPStore work-remote
Account work
MaildirStore work-local
Path ~/.mbsync/work/
Inbox ~/.mbsync/work/INBOX
Channel work
Master :work-remote:
Slave :work-local:
Patterns "INBOX" "*"
# Patterns "INBOX" "Other" "Archive" "Drafts" "Deleted Items"
Create Slave
# Remove Slave
Expunge Slave
Sync Pull New ReNew Delete Flags
SyncState *
IMAP の場合、要件の 1 つはメッセージの変更を許可しないことです。現場で;すべての変更には、新しいファイル識別子を指定するメッセージが必要です。つまり、以下を使用してln
同期する前に、現在の状態をバックアップに安全にコピーできますmbsync
。
cd "$HOME/.mbsync"
mkdir -p backup
cp -al work/* backup/
find backup -type f -name '.*' -delete
同期後、次のようにメールリストを比較できます。
cd "$HOME/.mbsync"
( cd work &&
find . -type f \( -name '.*' -o -printf "%p\t%T+\t%y\t%#m\t%U\t%G\n" \) |
sort
) > work.list
( cd backup &&
find . -type f \( -name '.*' -o -printf "%p\t%T+\t%y\t%#m\t%U\t%G\n" \) |
sort
) > backup.list
comm -3 work.list backup.list
comm -23
comm -13
新しいメッセージと削除されたメッセージのリストを実行して生成し、各From
メッセージのヘッダーを抽出してレポートを作成することは特に難しくありません。To
Subject
Date