カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

Procmail 本文を取得する

procmailを使って、本文を変数に格納します。

procmailフラグ「b」…メールの本文をアクションに渡す

:0b
{
    BODY = `sed -e ' 1,/^$/ d'`
}

以上で変数$BODYに本文が格納されます。

参考URL: http://jo1upk.blogdns.net/linux/?%E3%82%BD%E3%83%95%E3%83%88%2Fprocmail%2Fformail

1,269 views

testコマンド

便利なコマンド「test」

【書式】
test [条件式]
[ [条件式] ]

条件式
-e [ファイル] 指定したファイルが存在すれば真を返す
-d [ファイル] 指定したファイルが存在し、ディレクトリであれば真を返す
-h [ファイル]、-L [ファイル] 指定したファイルが存在し、シンボリックリンクであれば真を返す
-r [ファイル] 指定したファイルが存在し、読み取り可能であれば真を返す
-s [ファイル] 指定したファイルが存在し、ファイルサイズが1以上であれば真を返す
-w [ファイル] 指定したファイルが存在し、書き込み可能であれば真を返す
-x [ファイル] 指定したファイルが存在し、実行可能であれば真を返す
[ファイル1] -nt [ファイル2] 指定したファイル1の更新日時がファイル2の更新日時より新しければ真を返す
[ファイル1] -ot [ファイル2] 指定したファイル1の更新日時がファイル2の更新日時より古ければ真を返す
[文字列1] = [文字列2] 文字列1と文字列2が同じであれば真を返す
[文字列1] != [文字列2] 文字列1と文字列2が異なれば真を返す
[数値1] -eq [数値2] 数値1と数値2が同じであれば真を返す
[数値1] -ne [数値2] 数値1と数値2が異なれば真を返す
[数値1] -lt [数値2] 数値1が数値2より小さければ真を返す
[数値1] -le [数値2] 数値1が数値2より小さいか同じであれば真を返す
[数値1] -gt [数値2] 数値1が数値2より大きければ真を返す
[数値1] -ge [数値2] 数値1が数値2より大きいか同じであれば真を返す
! [条件式] 条件式が偽であれば真を返す
[条件式1] -a [条件式2] 条件式1と条件式2の結果が共に真であれば真を返す
[条件式1] -o [条件式2] 条件式1と条件式2のいずれかの結果が真であれば真を返す
1,157 views

rblsmtpd [ucspi-tcp]

ucspi-tcpパッケージのrblsmtpdのオプション紹介

rblsmtpdはRBL(Realtime Blackhole List)データベースを利用して
スパムメール送信者であるかを判断するプログラムです。

オプション

オプション 説明
-a address addressをアンチRBLデータベースとして利用
-b アドレスがRBLに掲載されている場合、エラーコード533553を返す
-B アドレスがRBLに掲載されている場合、エラーコード451エラーコードを返す(デフォルト)
-c RBLの検索に失敗した場合に接続を拒否
-r address addressをRBLデータベースとして利用
-t n n秒のタイムアウト値を設定

エラーコード533:STMPサーバが送信を拒否
エラーコード553:STMPサーバが送信を拒否
エラーコード451:要求された処理の実行中にエラーが発生したため、処理に失敗。(サーバ側のエラー)
※実際にはデフォルトで553が返されていました。→公式サイトで確認すると553で、私が参考にした書籍が533となっていました。
http://cr.yp.to/ucspi-tcp/rblsmtpd.html [英語]
続きを読む…»

1,942 views

tcpserver [ucspi-tcp]

ucspi-tcpパッケージのtcpserverのオプション紹介

基本オプション

オプション 説明
-v すべてのメッセージをstderrに出力
-q メッセージをstderrに出力しない
-Q エラーメッセージのみをstderrに出力(デフォルト)

続きを読む…»

1,288 views

Procmail レシピTips

Procmailにてレベルを定義し振り分けをおこなう方法と
ORによる条件判定の方法。

LEVEL=2

レベル2のとき適用

:0
* $LEVEL ?? 2
{
    # 逆引きできないホストを経由したメールの場合
    :0Hfw
    * ^Received: .*from.*unknown
    | formail -I "X-Spam-Flag: True"
}

続きを読む…»

1,791 views

CentOS6

http://kajuhome.com/centos6_inst.shtml

845 views

apache 起動スクリプト

#!/bin/sh
# httpd: /usr/local/apache2
. /etc/rc.d/init.d/functions

[ -f /usr/local/apache2/bin/apachectl ] || exit 0

case "$1" in
	start)

		# Start daemons.

		/usr/local/apache2/bin/apachectl start

		if [ $? = 0 ] ; then
			echo "httpd starting:" `echo_success`
		else
			echo "httpd starting:" `echo_failure`
		fi

		;;

	stop)

		# Stop daemons.

		/usr/local/apache2/bin/apachectl stop

		if [ $? = 0 ] ; then
			echo "stopping httpd:" `echo_success`
		else
			echo "stopping httpd:" `echo_failure`
		fi

		;;

	restart)

		$0 stop
		$0 start
		;;

	configtest)

		#httpd.conf test
		/usr/local/apache2/bin/apachectl configtest
		;;

	*)

		echo "Usage: `basename $0` {start|stop|restart}" >&2
		exit 64
		;;
esac

exit 0
1,851 views

qmailの起動スクリプト

#!/bin/sh
# qmail: /var/qmail
. /etc/rc.d/init.d/functions

[ -f /var/qmail/rc ] || exit 0

case "$1" in
	start)

		# Start daemons.

		echo "Starting qmail."
		csh -cf '/var/qmail/rc &'

		# Starting tcpserver with pop3d
		/usr/local/bin/tcpserver -R 0 110 /var/qmail/bin/qmail-popup \
		mail.example.jp \
		/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&>1 \
		| /var/qmail/bin/splogger pop3d &

		if [ $? = 0 ] ; then
			echo "pop3d starting:" `echo_success`
		else
			echo "pop3d starting:" `echo_failure`
		fi

		# Starting tcpserver with smtpd
		/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb \
		-c 100 -u qmaild -g nofiles \
		0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &

		/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb \
		-c 100 -u qmaild -g nofiles \
		0 587 /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &

		if [ $? = 0 ] ; then
			echo "smtpd starting:" `echo_success`
		else
			echo "smtpd starting:" `echo_failure`
		fi

		touch /var/lock/subsys/qmaild
		;;

	stop)

		# Stop daemons.
		echo "Shutting down qmail."

		killall -g qmail-send
		if [ $? = 0 ] ; then
			echo "stopping smtpd:" `echo_success`
		else
			echo "stopping smtpd:" `echo_failure`
		fi

		killall -g tcpserver

		if [ $? = 0 ] ; then
			echo "stopping pop3d:" `echo_success`
		else
			echo "stopping pop3d:" `echo_failure`
		fi

		rm -f /var/lock/subsys/qmaild
		;;

	restart)

		$0 stop
		$0 start
		;;

	*)

		echo "Usage: `basename $0` {start|stop|restart}" >&2
		exit 64
		;;
esac

exit 0
1,518 views

PHPインストール

PHPのインストール時に使用できるシェルスクリプトです。
Apache1.X系とApache2.x系の2種類作成したもののご紹介です。

#!/bin/sh

#=======================================
# php configure script
# php version 5
# for apache version 1
#=======================================

ARGV=$@

if [ -e $ARGV ] ; then

	echo "Please enter the option!"
	echo "[Options]:"
	echo "test - 設定されているコンフィグオプションを表示します。"
	echo "exec - php5をビルドします。"

elif [ "$ARGV" = "test" ] ; then

	echo "./configure \\"
	echo "--with-apxs=/usr/local/apache/bin/apxs \\"
	echo "--enable-mbstring \\"
	echo "--enable-mbstr-enc-trans \\"
	echo "--enable-mbregex \\"
	echo "--enable-trans-sid \\"
	echo "--with-mysql=/usr/bin \\"
	echo "--with-config-file-path=/usr/local/lib"

elif [ "$ARGV" = "exec" ] ; then

	./configure \
	--with-apxs=/usr/local/apache/bin/apxs \
	--enable-mbstring \
	--enable-mbstr-enc-trans \
	--enable-mbregex \
	--enable-trans-sid \
	--with-mysql=/usr/bin \
	--with-config-file-path=/usr/local/lib

	ERROR=$?
	if [ "$ERROR" = "0" ] ; then
		echo "ビルドが終了しました。"
	fi

else

	echo "error: unknown option!"
	echo "[Options]:"
	echo "test - 設定されているコンフィグオプションを表示します。"
	echo "exec - php5をビルドします。"

fi

続きを読む…»

1,346 views

apache インストール

コンフィグ用シェルスクリプトを用意
apache.configure

#!/bin/sh
./configure \
--enable-module=so \
--enable-mods-shared=most \
--enable-ssl \
--with-ssl=/usr/share/ssl \
--enable-vhost-alias
apache.configure

make
make install

make clean
make distclean

確か1でも2でもいけるはず…

アップグレードでの再インストールの場合、設定ファイル・ドキュメントファイルは上書きされませんが、
ドキュメントルートのindex.htmlやapacheアイコンなどは上書きされます。

1,241 views