- PR -

procmailのレシピについてアドバイスをお願いします

1
投稿者投稿内容
YT
会議室デビュー日: 2008/04/10
投稿数: 3
投稿日時: 2008-04-10 22:02
大学関係者です.
FreeBSD + Postfix + Dovecot のサーバーを使用しています.

セキュリティーの設定により学外からメールの読み出しができません.
そこで,出張用に受信メールのコピーを Yahoo! メールに転送しています.
その際,通信環境がいつも恵まれているわけではないため,
できるだけ余計なメールを受信しないでもよいように,
procmail を使い,ある程度条件を絞って転送をしていました.

以前は学内者からのメールは全て転送していたのですが,
From に学内者のアドレス(ドメインが同じ)を偽装した迷惑メールが
増えたため,自分なりに調べ,下記のようなレシピを作成しました.

------------------------------
RECEIVEDTEXT = `formail -U "Received:" | formail -x "Received:"`
:0 f
*!RECEIVEDTEXT ?? .*\\[XXX\\.XXX\\.*
*From:.*xxx\\.xxx\\.ac\\.jp.*
$HOME/trash/.
#
#
:0 EHc
…この後,転送可否のレシピ記述…
xxxxxx@yahoo.co.jp
------------------------------

formail を使い,一番最初(ヘッダーでは一番下)の「Received:」
ヘッダーを参照し,「From が大学のドメイン」になっている
にもかかわらず,「IP は大学のドメインものではない」という
条件にかかったものを「trash」に入れていました.

trash に入ったメールは,1,2… と,整数番号のファイルとして
個別に保存されていました.



ところがこのレシピには問題がありました.

同僚が学外からメールを送ることがあり,それも上記の条件を
満たしてしまうため, trash に入ってしまいます.
trash に入ったメールはたまにしかチェックしませんので,
大事な要件に遅れて気が付いたという失態がときどき発生しました.
(現在は,最初の5行を消したレシピに戻しています.)

何とかこの方法を成功させたいのですが,trash に入れるのではなく,
引っかかったものはそのままメールボックス(Maildir/new/)に保存され,
その下の転送可否のレシピにかからないという設定にしたいと考えています.

こうできれば,同僚が学外から送ってきたメールは,Yahoo! メールには
転送されませんが,大学内で普通に読めますので問題ありません.
また,学内でメールを読むときには,学内のドメインを偽装した迷惑メールを
受信してしまいますが,貧弱なネットワーク環境というわけではありませんので,
メールソフトののフィルタリングでOKです.


さて,試行として,
----------
$HOME/trash/.
----------
の部分を
----------
$HOME/Maildir/new/.
----------
として試してみましたところ,最初の5行の条件に引っかかるメールを,
メールソフトでは受信しませんでした.
ならば,Maildir/new/ に 1, 2… というファイルで残ったままになっている
だろうと考え,ディレクトリを見てみましたが,何も残っていませんでした.
(どこに行ってしまったんでしょうか???)


最初の5行の条件にかかる偽装メールはそのままメールボックスに残し,
転送はしないという方法について,どなたかご教示いただければ幸いです.
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2008-04-11 21:47
procmailの場合、
Maildir形式に保存するだけなら、

$HOME/Maildir/new/. ではなく、
$HOME/Maildir/
ではないでしょうか?
YT
会議室デビュー日: 2008/04/10
投稿数: 3
投稿日時: 2008-04-13 16:35
F/A 様

コメントありがとうございました.
> $HOME/Maildir/new/. ではなく、
> $HOME/Maildir/

新着メールを読み込む前に,フォルダの中身を見に行ったところ,
$HOME/Maildir/new/
にメールが入っていたもので,ここかと思いました.
サーバーの管理者が特殊なことをしているのかもしれませんので聞いてみます.
YT
会議室デビュー日: 2008/04/10
投稿数: 3
投稿日時: 2008-04-16 09:17
F/A 様

> $HOME/Maildir/new/. ではなく、
> $HOME/Maildir/

ご指摘いただいたとおりでした.
管理者に聞いても良く分からないという返事でしたが,動作は希望どおりです.
ありがとうございました.

管理者いわく,「多分,Maildir/new/ に入れるのは Postfix のお仕事で,
そこまで勝手に指示してしまっているのが問題では?」という解釈でした.
まぁ,そう考えれば理解できるような….

いずれにしろ,問題は解決しました.ありがとうございました.
1

スキルアップ/キャリアアップ(JOB@IT)