過去ログ表示


過去ログ 23 を表示

トピック内全 3 記事中の 1 〜 3 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

メールフォルダー内の重複整理
(#3297) このトピック中1番目の投稿

メールフォルダー内の重複(同一Message-ID)整理(一重化)
する 簡単な方法はありますか?


Re[1]: メールフォルダー内の重複整理
(#3309) このトピック中2番目の投稿

> メールフォルダー内の重複(同一Message-ID)整理(一重化)
> する 簡単な方法はありますか?

2002/09/15(Sun) 08:26:10 の 重複メールの削除について (#2934)
http://mozilla.gr.jp/tools/cbbs/cbbs.cgi?mode=one&namber=2934&type=0&space=0&no=0
> Mozillaのメーラーにメールをインポートしたところ、
> 大量の重複メールが発生してしまいました(700通以上)。
> 手動で削除することも不可能ではありませんが、大変すぎます。
> そこで重複メールの削除をしたいのですが、どのようにしたらいいのでしょうか。
を投稿された方ですか?

すでにインポートして移行後、Mozillaでメールが保存されているので、
元のところからの再度のインポートはもう無理なんでしょうね。

でも、誰からも返事がなかったところを見ると、標準的な方法はないと考えるべきでしょう。
で、自力で行う方法を。

メールは、メールディレクトリーの下の<メールサーバー名>というディレクトリーの下の、
<メールフォルダー名>および<メールフォルダー名>.msfという2つのファイルで構成されています。
サブフォルダーにある場合は、<親のフォルダー名>.sbdというディレクトリーの中に、<メールフォルダー名>と<メールフォルダー名>.msfがあります。
メールの実体は<メールフォルダー名>というファイルにあります。
<メールフォルダー名>.msf は未読などの管理用のファイルのようです。

<メールフォルダー名>というファイルをテキストエディターで見ると、
From - 曜日 月 日 時刻 年 という形式のレコードがあり(多分これがセパレーター)、
> From - Sat Oct 05 07:05:37 2002
そのあとにいくつかメールヘッダーがあり、
> X-Persona: <Mozilla.org>
> Return-Path: <web-master@Mozilla.org>
その中にメッセージIDのヘッダーがあり、
> Message-Id: <123456789.ABCDEF1234@Mozilla.org>
あと他のヘッダーや本文、添付ファイルなどのデータが続く、
という形で、一つのメールを構成しているようです。
(unix mbox形式なので、その情報を探せばなにか書いてあるかもしれない)

(0) Mozillaで、整理したいメールフォルダーのメールを日付順にソートしてから、
  別のメールフォルダーにすべてコピーする
と、念のためのゴミ消しをしておき、
テキストエディターでもBATでもPerlとかRexxのスクリプトでも、何でもいいですから、
(1) それぞれのメール単位にファイルに分割。
  セパレーターを目印に、一つのメールを抜き出す
  メッセージIDを簡単な変換規則でファイル名に変換する
  (たとえばWinの場合は、:\|<>などの禁止文字はファイル名には使えない)
  (が、両側の < と > をとるだけで、ほぼOKのように見える)
  同じメッセージIDなら同じファイルに追加ではなく上書きする
  (Message-IDの重複チェックを、OSにやらせる場合)
  (スクリプトで処理する場合は、ソートして判定するとかお好みの方法でどうぞ)
(2) 分割したファイルを一つの<フォルダー名-NEW>というファイルにまとめる
  Winの場合だと、copy file1+file2+... <フォルダー名-NEW> でも可
を行い、
(3) <フォルダー名-NEW>.msfファイルがあれば消す
(4) Mozillaでメールフォルダーをオープンする
<フォルダー名-NEW>.msf は自動的に再作成される
という方針で可能だと思います。
いくつかのメールについてエディターでファイルに保存し、それをMozillaのMail &Newsで見てみれば確認できます。
ダメ元で試してみてはいかがでしょうか。

ただし、バックアップをとるとか、作業用のメールフォルダー/サブフォルダーにコピーしてそちらのディレクトリー/ファイルで操作するとかは、絶対に必要ですので、ご注意ください。

簡単なスクリプトでテストしてみた結果ですが、
テスト用のメールフォルダーにメールを全てコピーし、
メール一つだけを別なフォルダーにコピーし、それをコピーバックし、
一件だけ重複するMessage-Idを発生させて行ったテストでは、うまくいきました。
ただし、
セパレーターの場合に、
> From - Sat Oct 05 07:05:37 2002
のように、「日」の部分が二桁のものだけでなく、
> From - Mon Jan 1 00:00:00 1965
のように、「日」の部分が一桁のものがあったことと、
メッセージIDの場合に、
"Message-Id: " と "Message-ID: " の2種類があったので、
ちょっとだけ苦労させられましたが。
あと、無料版のスクリプト言語パッケージなのでメモリー内ソートがサポートされていなかったとか、Win-MeのSORTがキーの開始カラムの指定ができなくてちょっとタコだった、とかもありましたけどね(^^;

メールフォルダー内の重複整理
(#3340) このトピック中3番目の投稿

Wadaさん詳細な説明有難うございました。

> 標準的な方法はないと考えるべきでしょう。
わかりました。

> で、自力で行う方法を。
.....
済!

このトピックの全ページ / [0]

返信不可


- Child Tree -