Archive

Posts Tagged ‘qmail’

greylist のブラックリストの IP アドレスを CIDR で記述できるパッチ

最近また SPAM が増加傾向にあるので、ブラックリストをもっと細かく指定できるようにパッチを書きました。

Jon Atkins 氏の qgreylist に、S25R と tarpit 機能を付け、ブラックリスト、ホワイトリストに指定するホスト名を正規表現で指定できるようにした、ちっち氏の S25R + tarpit before qgreylist パッチ に、さらに CIDR 表記で指定できるようにしたパッチです。

greylist のデフォルトの blacklist の指定の仕方ですと、192.168.0.80 ~ 192.168.0.96 を拒否したかったら、192.168.0 と、256 アドレス巻き込んで拒否するか、16 ファイル個別に羅列して拒否するしかなかったので、アドレス範囲で拒否できれば便利だなと思い作成しました。

qgreylist-0.3_cidrsyntax-0.1.patch
(続きを読む…)

メール関数が機能しない

もの凄いハマりました。

mb_send_mail() でメールを送りたかったのですが、テスト環境で問題なかったプログラムを本番環境にアップして走らせたのですが動かない。

とりあえず、メーラーから送受信チェック。OK
phpinfo() をチェック。sendmail_path が none だったので、php.ini を編集。/usr/sbin/sendmail が表示された。OK
実際に /usr/sbin/sendmail を使って送信チェック。OK

しかし、PHP からは一向にメールが送れない。MTA のログにも何も表示されない。頭を抱えてうんうん唸る。念のため、mail() でもテスト。送れない。

PHP マニュアルを確認。なにかそれっぽい記述を発見。

メール関数を使用可能にするには、PHP のコンパイル時点でシステム上の sendmail バイナリにアクセスできなければなりません。 postfix や qmail など他のメールプログラムを使用してる場合には、 それらのソフトに付随する適当な sendmail ラッパを使用するように 気をつけてください。 PHP は sendmail を探す際にまず PATH を見ます。次に /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib の順で探します。PATH を通して sendmail を使用可能な 状態にしておくことが強く推奨されます。 また、コンパイルされた PHP が sendmail バイナリにアクセスできる権限を 持っていなければなりません。

そういえば、web 周りは一番最初に入れたからなぁ。
PHP をコンパイルし直してインストールしたが、相変わらず送れない。気を取り直して、

# make distclean

してから、もう一回再インストール。

やっと送れるようになりました。