3

"X-Evolution:" ヘッダーのみが異なるメッセージの複製コピーを含む mbox メールボックスを持っています。

できるだけ迅速かつ簡単な方法で、重複したものを削除したいと思います。これはすでに書かれているようですが、Python メールボックス モジュール、さまざまな perl mbox パーサー、formail などを見てきましたが、見つかりませんでした。

誰か提案はありますか?

4

3 に答える 3

0

「formail -D」および「reformail -D」は、実行ごとに 1 つの電子メールしか処理できません。各メールは、処理する前にまず mbox から分離する必要があります。私は代わりに maildrop の reformail を使用しています。これはまだ活発に開発されているためです。

  1. 古いidcache、tmpmail、nmboxを削除
  2. dedup.sh を実行します。
  3. nmbox は、重複メッセージが削除された出力です。

dedup.sh

#! /bin/sh
# $1 = mbox, thunderbird mailbox
# wmbox.sh is called for each mail.

cat $1 | reformail -s ./wmbox.sh

wmbox.sh

#! /bin/sh
# stdin: a email
# called by dedup.sh

TM=tmpmail
if [ -f $TM ] ; then
   echo error!
   exit 1
fi
cat > $TM
# mbox format, each mail end with a blank line
echo "" >> $TM

cat $TM | reformail -D 99999999 idcache

# if this mail isn't a dup (reformail return 1 if message-id is not found)
if [ $? != 0 ]; then
   # each mail shall have a message-id
   if grep -q -i '^message-id:' $TM; then
      cat tmpmail >> nmbox
   fi
fi

rm $TM
于 2016-05-02T08:44:17.357 に答える
0

formail (procmail の一部) を十分に詳しく調べていませんでした。http://hints.macworld.com/comment.php?mode=view&cid=115683http://us.generation-nt.com/answer/deleting- _ _ _ duplicate-mail-messages-help-172481881.html

于 2012-05-09T20:08:01.060 に答える