[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp: 3757] [FYI] mailq に溜っているメールを無理矢理 Maildir 形式に変換
- Subject: [postfix-jp: 3757] [FYI] mailq に溜っているメールを無理矢理 Maildir 形式に変換
- From: matumoto@xxxxxxxxxxxxxxxxxxxxxx
- Date: Thu, 25 Mar 2010 21:02:09 +0900 (JST)
松元@どっかの大学です。
うちの学科の教職員にメールサーバ障害で相談されました。
その教職員は学科のメールサーバから 研究室のメールサーバに ~/.forwardで
転送してます。
それで、研究室のメールサーバがこけたんだが、復旧まで時間がかかるので上
流の学科メールサーバに詰まっているメールが読みたい。という事でした。
少量なら 手作業で送ろうと思ったので、mailqに溜っているメールが300通近
くあったため、悩んでみたのですが、とりあえずこれでどうにかなりました。
** 以下は全て無保証 **
OS: Solaris10 / SPARC
postfix: 自前make, postfix-2.5.9
pop/imapサーバ: 自前make, dovecot-1.2.9
-- tmp.pl --
$flag=0;
while(<STDIN>)
{
if(/^\*\*\* MESSAGE CONTENTS deferred\/.\/.......... \*\*\*\n/)
{
$flag=1;
next;
}
if(/^\*\*\* HEADER EXTRACTED deferred\/.\/.......... \*\*\*/)
{
$flag=2;
}
print if($flag==1);
}
-- --
該当ユーザの ~/.forwardを解除する。
$ mailq > mail.txt
関係ないQUEUEを消す。また、QUEUE-IDに「*」が付いている場合があるので、
「*」を消す。
$ vi mailq.txt
$ mkdir NEW
$ cd NEW
「Mar」でgrepしているのは3月だから。適切に変更ください。
$ grep " Mar " ../mailq.txt | awk '{print "/usr/sbin/postcat -q " $1 " | perl ../tmp.pl > " $1 }'
# QUEUE-IDのファイルが出来る。
$ grep -n ^Delivered-To * > ../DelCheck.txt
$ less ../DelCheck.txt
間違いが無いか確認し、該当するユーザの Maildir/new にコピーする。chownを忘れずに。
次にQUEUEを消す
$ grep " Mar " ../mailq.txt | awk '{print "/usr/sbin/postsuper -d " $1 }' | sh
なお、上記の方法でMaildir/newにつっこんだ場合、通常のメールと比べて以
下のヘッダが不足するみたいだが、とりあえずdovecot + squirrelmail で吸
い上げた限り、本文は問題なく読めた。外の部分は知らないので、念のため。
--
Return-Path: <example@example.ac.jp>
X-Original-To: <example2@example.ac.jp>
Delivered-To: <example3@example.ac.jp>
_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxxxxxxxxxxxxxxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list
- Follow-Ups
-
- [postfix-jp: 3760] Re: [FYI] mailq に溜っているメールを無理矢理 Maildir 形式に変換, YAMAGUCHI Takanori
[検索ページ]
[Postfix-JP ML Home]