私の問題は、私が他のGMailアカウントからメールをインポートするためにGMailのpop3インポート機能をたくさん使用していることです。しかし、当時は、以前にサーバーに保存されたすべてのメールではなく、新しいメールのみをインポートしていました。これで、選択したメールクライアントでmuttを使用し始めたので、古いメールアカウントをすべてインポートし、古いメールをすべてローカルに保持することにしました。
私の最初の希望は、fdupesのようなツールを使用して重複したEメールを簡単に消去できるということでしたが、GMailがPop3を介してEメールを検索したときにここに見られるように、ヘッダーがわずかに変更されることは予想していませんでした。
@@ -1,7 +1,16 @@
Return-Path: <[email protected]>
Delivered-To: unknown
Received: from pop.gmail.com (74.125.43.109:995) by localhost with POP3-SSL;
- 10 May 2011 13:35:06 -0000
+ 10 May 2011 14:29:41 -0000
+Delivered-To: [email protected]
+Received: by 10.204.52.199 with SMTP id j7cs172325bkg;
+ Sun, 2 May 2010 15:33:19 -0700 (PDT)
+Received: by 10.204.136.15 with SMTP id p15mr6011875bkt.172.1272839446530;
+ Sun, 02 May 2010 15:30:46 -0700 (PDT)
+Received-SPF: softfail (google.com: best guess record for domain of transitioning [email protected] does not designate 84.167.28.93 as permitted sender) client-ip=84.167.28.93;
+Received: by 10.188.26.17 with POP3 id 17mf826641bwz.107;
+ Sun, 02 May 2010 15:30:46 -0700 (PDT)
+X-Gmail-Fetch-Info: [email protected] 1 smtp.gmail.com 995 xxxx
Received: from aequitas ( [84.167.28.93])
by mx.google.com with ESMTPS id e20sm18902485fga.1.2008.01.04.07.58.46
(version=TLSv1/SSLv3 cipher=RC4-MD5);
元の姿はこんな感じです。http://pastebin.com/U6YzNySP これらの「重複ファイル」を簡単に削除する方法はありますか?
答え1
重複するアイテムを特定するには、mx.google.comのESMTPS IDを使用してください。これは変更しないでください。上記の例では、mx.google.com が提供する ESMTPS ID は e20sm18902485fga.1.2008.01.04.07.58.46 です。
非常に簡単な実装は、すべてのメールをディレクトリに入れてIDを抽出し、-fを使用せずにそのIDにファイルをシンボリックリンクすることです。良い:
for FILE in *; do
smtpid=$(do_extract_smtp_id_here)
if test -f ${smptid}; then
echo "DUPE: ${FILE}"
else
ln -s ${FILE} ${smtpid}
fi
done