ヘッダーが少し異なる場合、maildirで「冗長」メッセージを探す

ヘッダーが少し異なる場合、maildirで「冗長」メッセージを探す

私の問題は、私が他の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

おすすめ記事