qmail関係の情報まとめ
qmail contorolhttp://man.qmail.jp/jman5/qmail-control.html
バウンス(bounce)メールとは何らかの理由で送信できずに送り返されたメールのことで 通常は送信元メールアドレス宛に送付される
ダブルバウンスとはバウンスメールが何らかの理由で配送不能となったメールのこと
qmailでは以下のcontrol fileが利用できる
既定値 | 内容 | |
---|---|---|
bouncefrom | MAILER-DAEMON | 差戻し送信者名 |
bouncehost | me | 差戻しホスト名 |
doublebouncehost | me | 2重バウンスホスト名 |
doublebounceto | postmaster | 2重バウンスの宛先 |
既定値での流れは以下となる
phpなどからメール送信する場合の問題
phpのmb_send_mail()で送信する場合は、パラメータとして-f<envelope_from>をきちんと 渡すように書かないといけないhttp://www.php.net/manual/ja/function.mb-send-mail.php
qmail-injectはメールを受信した際にReturn-Pathが含まれていなければ自動挿入する
自動挿入されるアドレスは ログイン名 or anonymous@defaulthost となる
plesk 7.5.4ではqmailが利用されている
その制御方法をメモ
この時、ファイルには
hogehoge.com:<num>と記載される。
この時、ファイルには
=<num>-info:popuser:110:110:/var/qmail/mailnames/hogehoge.com/info::: +<num>:popuser:110:110:/var/qmail/mailnames/hogehoge.com:::と記載される。
assignファイルは残るため、アカウント情報は残っている
info:<cryptで暗号化された文字列>:popuser:/var/qmail/mailnames/hogehoge.com/infoと記載され、メール機能を停止しても削除されない
qmHandleとqueue-fast.plとの合わせ技
queue-fast.plとqmHandleを同じディレクトリに保存
qmHandleをviで開いてキューディレクトリ(/var/qmail/queue)とqmailの起動/停止スクリプト部分を適切に変更
queueu-fast.plをviで開いてキューディレクトリを適切に変更
viでDeleteQue.shを作成
./queue-fast.pl | grep -v ^# | grep 削除対象メールアドレス文字列 | sed -e 's/^\([0-9]*\/\)\([0-9]*\) R .*$/\.\/qmHandle -d\2/'
DeleteQue.shを実行して結果をdel.shにリダイレクト
# DeleteQue.sh > del.sh
del.shの中身がqmHandleでキューIDを指定して削除するように記述されているか確認して実行
# less del.sh ./qmHandle -d13847449 ./qmHandle -d13847381 # sh del.sh
完了!
テスト環境でqmail+vpopmailを削除するには…
tcpserverにSSL対応パッチを適用することでSMTPS/POPSが利用可能
install: fatal: unable to read addcr.0: file does not exist 理由は、Makefileにパッチ適用されるのだが、この中で必要ファイルは makeのみでしか作成できない様子
Reversed (or previously applied) patch detected! Assume -R? [n] 理由は各種ファイルをucspi-tcp-ssl-20050405.patchがパッチ適用しているため 他のパッチが見ているファイルの中身が変更されるからだ
インスト手順は簡単明快!
# tar zxvf ucspi-tcp-0.88.tar.gz # cd ucspi-tcp-0.88 # patch < .../ucspi-tcp-ssl-20050405.patch # make # service qmaild stop ← tcpserverバイナリを上書きするので停止しておく必要あり # mv /usr/local/bin/tcpserver /usr/local/bin/tcpserver.org # cp tcpserver /usr/local/bin/tcpserver
後は、qmail起動スクリプトに証明書を食わせればOK
これだけでOKよーん
おっと、Firewallのポートを空けるのを忘れないように!
qmail-showctlを実行する事で認識している設定一覧が表示される。
qmailの動作には最低限meファイルのみが存在すればよい
meファイル内はホストのFQDN名が記載されている必要あり
コメントが許可されるのはbadmailfrom、locals、percenthack、rcpthosts、smtproutes、virtualdomainsである。
参考
ファイル名 | 規定値 | 利用プログラム |
---|---|---|
badmailfrom | (none) | qmail-smtpd |
badmailpatterns | (none) | qmail-smtpd |
badrcptto | (none) | qmail-smtpd |
bouncefrom | MAILER-DAEMON | qmail-send |
bouncehost | me | qmail-send |
concurrencylocal | 10 | qmail-send |
concurrencyremote | 20 | qmail-send |
defaultdomain | me | qmail-inject |
defaulthost | me | qmail-inject |
databytes | 0 | qmail-smtpd |
doublebouncehost | me | qmail-send |
doublebounceto | postmaster | qmail-send |
envnoathost | me | qmail-send |
helohost | me | qmail-remote |
idhost | me | qmail-inject |
localiphost | me | qmail-smtpd |
locals | me | qmail-send |
morercpthosts | (none) | qmail-smtpd |
percenthack | (none) | qmail-send |
plusdomain | me | qmail-inject |
qmqpservers | (none) | qmail-qmqpc |
queuelifetime | 604800 | qmail-send |
rcpthosts | (none) | qmail-smtpd |
smtpgreeting | me | qmail-smtpd |
smtproutes | (none) | qmail-remote |
timeoutconnect | 60 | qmail-remote |
timeoutremote | 1200 | qmail-remote |
timeoutsmtpd | 1200 | qmail-smtpd |
virtualdomains | (none) | qmail-send |
qmail-qstat 現在のキュー状態 qmail-qread 滞留キューの情報表示
キューの削除
QMAILIDHOST環境変数はこのidhostを上書きする
よく見るqmailのエラーコードを集めてみた。
これはレスポンスコードと呼ばれるもので3桁の数字から成り立っている。
エラーコードはそのログを見ると理由が記載されている。
1桁目 | 障害の種類 |
2桁目 | 障害の原因 |
3桁目 | 障害の症状 |
2xx番台 | 正常動作 |
3xx番台 | 正常動作 |
4xx番台 | 一時的エラー |
5xx番台 | エラー |
Success(250) | 送信成功! |
Deferral(421) | サービス提供不可、相手先メールボックスが一杯やサービスが有効でない場合 |
Deferral(443) | なんだろ? |
Deferral(450) | 宛先が許可されていない場合 |
Deferral(451) | 宛先が許可されていない、宛先サーバの不具合の場合 |
Deferral(452) | メッセージが拒否された |
Deferral(456) | なんだろ? |
Failure(501) | 宛先が不正 |
Failure(511) | 宛先メールボックスがない |
Failure(550) | メールボックスが有効でない、ユーザが存在していない |
Failure(551) | 宛先が拒否 |
Failure(553) | PTRレコードが不正 |
Failure(554) | 送信者が拒否、メールボックスが有効でない |
Failure(555) | なんだろ? |
qmailのpatch関連
メモ qmail-spf-rc5.patchとqmail-smtpd-auth-0.31は相性が悪い qmail-spf-rc5.patchとその他のpatchを当ててから qmail-smtpd-auth-0.31を当てて Makefileとqmail-smtpd.cを修正する必要がある
モジュール関係