いろいろ
Seize the day.
2005-11-17 [長年日記]
■ [comp] メールスプールに溜ったメールを救い出す方法 (OE ユーザ向け)
Windows のメールソフトウェアが調子悪くなって,なぜかメールを受信できなくなっちゃうことがある.今回職場で起こったのもそんなケース.不具合の原因は不明で,メールサーバ側に問題がある可能性もなくはないのだが,他のユーザはみな正常に使えていることと,クライアントマシンにバッドセクタがあったり何かと調子悪いことから,クライアントのせいが濃厚 (だーかーらー早く HDD 換えろと何度(ryとりあえず管理者な人が,メールサーバのスプールに溜ったメールを退避したとする.今から書くのはこの退避したメールを Windows でどうやって読むかという問題.不具合の解決とかはとりあえず無視ね(ぉ
退避したメールは mbox 形式の一塊のファイルになっている.これを Windows マシンで開く.Meadow かなんかがあれば文字も化けないし最高だが,とりあえずワードパッドで開くようにいう.メモ帳は改行が正しく認識されないので使わない.
たくさんのメール (文字化けしている) が concatenate されていることを説明する.さらに,メールとメールの切れ目が「空行 + From 行」となっていることを説明する.ヘッダの中に埋もれた From 行とかは,空行を伴ってないので無視.で,このデリミタごとにメールを切り出して別々のファイルとして保存させる.
最後に,切り出したファイルの拡張子を eml にする.これで,ファイルをダブルクリックすれば Outlook Express が立ち上がってメールの中身が読める.添付ファイルも普通に開ける.うまく読めない場合は切り出し時に何やら失敗している可能性が高い.
なお,拡張子を eml にするという技は,MH 形式で保存されたメールを Windows で読む時にも便利.
とまあ今回は手動でやってもらったんだけど(ぉ,それはメールがたったの数個だったからで,これが 10 個 20 個とかになったら,スクリプトでも書いたほうが親切というものだろう.
というわけで,書いてみた.早く書けばよかった.
#!/usr/local/bin/perl
# $Id: mbox2eml,v 1.1 2005/11/17 20:53:21 nao Exp $
$cnt = 0;
$flag = 1;
while( <> ){
if ( $flag && /^From\ .*/ ){
close IN if fileno(IN);
$cnt++;
open(IN, ">$cnt.eml");
next;
}
print IN;
$flag = /^$/;
}
close IN;
追記 (2007-04-06): 生成された eml ファイルに対してさらに mailutime コマンドをかけるとソートのときさらに便利 (タイムスタンプがメールの受信日時になる).追記 (2007-08-29): bug fixed.
[ ツッコミ | permalink | trackback ]
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20051117]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
本日のリンク元
検索
- mbox2eml ×6 / メールスプール ×3 / Windows MBOX 切り出す ×3 / キーワード不明 ×3 / mbox 切り出し ×2 / メールスプール形式 ×2 / メールサーバ スプール 空 方法 ×2 / メール 退避 ×2 / OE 退避 ×2 / MH形式 windows mobile ×1 / willcom メール outlookexpress ×1 / Perl メールスプール ×1 / spool メール 開く ×1 / メールスプール 移行 ×1 / thunderbird external editor meadow ×1 / スプール メール 不具合 ×1 / emlファイル 添付 切り出し ×1 / メール サーバ スプール Status ×1 / メール スプール perl ×1 / スプール Outlook ×1 / OE スプール ×1 / メールスプール 検索 ×1 / thunderbird スプール ×1 / メールサーバー スプール emacs ×1 / mailutime outlookexpress ×1 / メールスプール 添付ファイル ×1 / 添付ファイル メールスプール ×1 / Perl From メールスプール 切り出す ×1 / メールを退避 ×1 / spoolに溜まったメール ×1 / MBOX 切り出し ×1 / OE メール 文字 取得 Perl ×1 / Outlook スプール ×1 / メールサーバ 移行 スプール ×1 / メールの受信日時 ×1 / メールスプール 中身 ×1 / willcom メール文字化け ×1 / yahooメール oeで読む ×1 / outlookExpressメールを退避方法 ×1 / "メールスプール 開発" ×1 / メールスプール スクリプト ×1 / 拡張子 .eml 別々 ×1 / メール 切り出し "^From" perl ×1 / メール 保存形式 MH ×1
以下の広告はサーバによって自動的に挿入されています.
Copyright © 2004-2006, nao. All rights reserved.





