さて全て動作しました。もし動作しなかったらちゃんと動作するまで自動化は しなようにして下さい。ここでスクリプトが必要です。 procmailrcファイルにユーザーを追加するために"メール管理者"やrootユーザー に我慢する必要はありません。以下の例は経験のあるユーザー用のものです。 いくつか変更する必要があります。方法BのSubject行を使った例ですが、簡単に 方法Aのものに変更することができます。方法Bは方法Aよりも(安く)実現できるの で著者は方法Bを使いました。何回となく聞いてきましたが...。あなたをいらつか せる(bug) :))) 方法について :)) 書いています...。
フッタはフッタであることが必要なので(返信するので以下は全て処理されません)、 ヘッダファイルとフッタファイルが必要です。
このファイルは「"ヘッダ"と"ユーザー"」ファイルです。 ここでユーザーが追加されたり削除されたりします。とても重要なファイルです。 ユーザーを追加するときはバックアップをとるようにしましょう。システムエラーを 引き起こす何か悪いところがあるかもしれません.....。
(*** < file > *** text ***) .procmailrc-header
:0 c
passtrough
:0
* ^To:.*freaker@ibm.net
! freaker
:0
* ^Subject:.root
! root
:0
* ^Subject:.barbara
! barbara
:0
* ^Subject:.paul
! paul@his.personal.emailaddress
:0 c
* ^Subject:.john
! john@his.personal.emailaddress
:0
* ^Subject:.john
! john
:0
* ^From:.*newsletter@ibm.net
! freaker
:0
* ^FROM_DAEMON
throwaway
上述したように.procmailrc
ファイルにはフッタが必要です。
以下のコードはユーザーに配送するメール以外のヘッダの処理をします。
このフッタは上記した.procmailrc-header
に載っていないユーザー宛ての
メールを返信するコードが含まれています。ただのファイルの終りというわけで
はありません!
(*** < file > *** text ***) .procmailrc-footer
:0
|(/usr/bin/formail -r -k \
-A"X-loop: mailservice@mydomain.dom "| \
/usr/bin/gawk '{print }\
/^/ && !HEADER \
{ system("/bin/cat nosuchuser"); \
print"--" ;\
HEADER=1 }' ) |\
/usr/bin/sendmail -t
exit
このスクリプトはヘッダファイルにユーザーを追加するものです。ヘッダとフッタが
結ばれています。これで完全な.procmailrc
ファイルになります。
"#"(コメント)は特に必要ではありません。あなた自身が情報を
書き込んで下さい。
(*** < file > *** code ***) addmail (* chmod 500 *)
#/bin/sh
#
# Copyright (c)1997 by Gunther Voet. rev 1.0.1
# please leave the Copyright in it when it is distributed with any
# system using this thingy ..
echo ""
echo "Addmail v1.0.1 by Gunther Voet, Freaker / TuC'97-98 (21/04/97)"
echo ""
if [ $1 ]; then
if [ $2 ]; then
# バックアップファイルの作成!
cp /home/mailserv/.procmailrc-header /home/mailserv/.procmailrc-backup
# (>>) ヘッダファイルに情報を追加。
echo ":0" >> /home/mailserv/.procmailrc-header
echo "* ^Subject:.$1" >> /home/mailserv/.procmailrc-header
echo "! $2" >> /home/mailserv/.procmailrc-header
echo "" >> /home/mailserv/.procmailrc-header
# ヘッダファイルを.procmailrcにコピーしてフッタファイルを追加する。
cat /home/mailserv/.procmailrc-header > /home/mailserv/.procmailrc
cat /home/mailserv/.procmailrc-footer >> /home/mailserv/.procmailrc
# "mailserv"の所有権を確認する。読み書きの権限は"mailserv"ユーザー
# のみにあるようにする。
chown mailserv /home/mailserv/.procmailrc
chgrp users /home/mailserv/.procmailrc
chmod 600 /home/mailserv/.procmailrc
else
echo "No DESTINATION mail address has been given ..."
fi
else
echo "usage:"
echo ""
echo "syntax: addmail from_user to_user(domain)"
echo ""
echo "example: addmail freaker freaker@myemail.dom"
echo ""
fi
このスクリプトはヘッダファイルにメールアドレスとユーザー情報
を追加します。 .procmailrc
に情報をコピーしてフッタを追加します。これで
メールを処理するための .procmailrc
が完成します。ユーザーを削除したいとき
は.procmailrc-header
ファイルを編集するだけです。次からはユーザーを追加
する時に.procmailrc
から削除されます(訳注:つまりこの方法ではユーザーを
削除する時は.procmailrc
ではなく.procmailrc-header
で削除して
おきます)。すぐに削除する必要がある時は.procmailrc-header
と.procmailrc
の両方のファイルからユーザーを消しておいて下さい。
[訳注:まとめると、
.procmailrc
" : procmail用ファイル.procmailrc-header
" : ユーザーの追加/削除.procmailrc-footer
" : ユーザー以外の処理