procmailのレシピ例 - TK's HP

TK's HP ホーム » スポンサー広告 » linux » procmailのレシピ例

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

procmailのレシピ例

.procmailrcのレシピを作ったので、公開します。

一応情報はインターネットに転がっていますが、自分の求めるものを探すのが大変でした。

作成した条件は、

1. メールループ(バウンス含む)を起こさない
2. メールアドレスを変数で管理
3. ケータイに転送するときに添付ファイルを削除する

です。

もっとも、必要だったのは1の条件だけで、他の2つは趣味ですw
しかし3の条件については添付ファイルどころか本文までも削ってしまいますし、完成度は80%といったところでしょうか。


以下が作成したレシピです。
.procmailrcという名前に変えてHOMEディレクトリ直下に置いてご使用下さい。
バグや改良案があれば教えてくれると嬉しいです。

使い方
上の部分のアドレスの設定を変えるだけで使えるようになっています。
自分の環境に合わせて編集して下さい。

MY_ADDR : .procmailrcを置くアカウントのメールアドレス。必ず設定する。

MOBILE_ADDR : 転送するケータイのメールアドレス。使用しないときは#でコメントアウト
MOBILE_MAX_SIZE : ケータイに転送できる最大のサイズ(10進バイト数)。これを超えるとヘッダだけになる。

PC_ADDR : 転送する他のPC用メールアドレス。これで転送するとサーバにはメールが残りません。

.procmailrc


#####***********************************************
# .procmailrc
# arranged by TK
# 2009/1/23

#####***********************************************
#### 変数の設定

####-----------------------------------------------
### アドレスの設定

## 自分のアドレス
# ループ防止用に必ず設定して下さい
MY_ADDR=myAddr@myaddr.com

## ケータイのアドレス
# 使わないときは'#'でコメントアウト
MOBILE_ADDR=mobile@mobile.com
MOBILE_MAX_SIZE=1000000

## 他のPC用メールアカウントで管理するとき
# (注意)サーバには残りません
# 使わないときは'#'でコメントアウト
PC_ADDR=anotherPC@anotherPC.com

####-----------------------------------------------
### その他変数

## ログの記録
# ログをとりたい場合は、以下のコメントアウトを外す
# ただし、ログファイルの容量が増え続けるので、動作確認ができたら
# ログをとるのを止めてください
#LOGFILE=$HOME/procmail.log

# ログを詳細に記録したい場合は、以下のコメントアウトを外す
#VERBOSE=yes


#####***********************************************
#### メールの動作レシピ
# ここから下は設定しなくてもOK
# 上から順に実行される

####-----------------------------------------------
### 前処理

## 重複メールの削除
# メーリス(自分を含む)+自分宛といった様な同じメールを削除する
:0 Wh: msgid.lock
| formail -D 8192 msgid.cache

## メールループの防止
# X-Loopタグが$MY_ADDRのときループメールであると判断
# ループメールの破棄(は怖いので、とりあえず転送しないだけ)
:0 HB
* $ ^X-Loop: $MY_ADDR
#/dev/null
$DEFAULT

# ループメール判別用フラグの設定
# とりあえず5秒まってから転送をかけるので多少安全
:0 fw
| formail -A "X-Loop: $MY_ADDR" ; sleep 5


####-----------------------------------------------
### 転送処理

## 携帯に転送
# root, bugzilla 以外からのメールならば
# $MOBILE_ADDR に転送
# サイズが大きいときはヘッダだけ転送
:0 c
* $ !($MOBILE_ADDR)
* ! ^From: .*root.*
* ! ^From: .*bugzilla.*
* $ !($MOBILE_MAX_SIZE -gt 0)
{
:0 h
* > $MOBILE_MAX_SIZE
! $MOBILE_ADDR
:0
! $MOBILE_ADDR
}

## すべてのメールを転送
# 転送先が設定されていれば全てのメールを転送
:0
* $ !($PC_ADDR)
! $PC_ADDR


参考リンク
http://www.jaist.ac.jp/~fjt/procmail.html
http://www.ipc.hokusei.ac.jp/doc/online/procmail/setuprc.html
http://asiapac1.verio.jp/support/vps/basic/admin/email/procmail/docs/formail.1.html
http://www.linux.or.jp/JM/html/procmail/man1/procmail.1.html
http://blog.livedoor.jp/linuxlinux/archives/50354506.html
関連記事
記事に間違いなどがあればすぐに訂正いたしますので、コメントしてください。
コメント
非公開コメント

トラックバック

http://tclip.blog.fc2.com/tb.php/65-e5a94d3c

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。