Postfixの最近のブログ記事

PostfixがLDAPを利用できるようにコンパイルされているかどうかは、以下のコマンドで確認する。
実行結果に『ldap』の文字が表示されれば利用できる。

# postconf -m
btree
cidr
environ
hash
ldap ←これがあるかを確認。あれば利用できる。
nis
pcre
proxy
regexp
static
unix

上記はRed Hat Enterprise Linux 5.5 64bitでの実行結果。

Postfixインストール後(main.cfを変更していない状態)にpostconfを実行すると、出力結果がなぜか1行だけ変になる。
何度実行しても同じ結果。
postconf -dでは同じ問題は発生しない。

# postconf
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
(中略)
milter_helo_macros = {tls_version} {cipher} {cipher_bits} {cert_subject} {cert_issuer}
milter_macro_daemon_name = $myhostname
milter_macro_v = $mail_nampostconf: warning: My hostname skb-tst10 is not a fully qualified name - set myhostname or mydomain in /etc/postfix/main.cf
e $mail_version  ←★この行★
milter_mail_macros = i {auth_type} {auth_authen} {auth_author} {mail_addr}
milter_protocol = 2
milter_rcpt_macros = i {rcpt_addr}
(後略)

一応備忘録として。。。

■Postfixのパラメータを表示(実際に設定されている値)

# postconf
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
(後略)

■Postfixのデフォルトパラメータを表示

# postconf -d
2bounce_notice_recipient = postmaster
access_map_reject_code = 554
address_verify_default_transport = $default_transport
(後略)

■Postfixのパラメータに設定されている値のみを表示
 このコマンドだけだとどのパラメータに設定された値か分からない。

# postconf -h
postmaster
554
$default_transport
(後略)

■Postfixのデフォルトパラメータに設定されている値のみを表示

# postconf -d -h
postmaster
554
$default_transport
(後略)

■Postfixでデフォルトから変更されているパラメータのみを表示

# postfix -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
(後略)

Postfixのキューにsavedというものがある。
Linux上のディレクトリは /var/spool/postfix/saved/ である。

これはPostfixで dont_remove = 1 と設定されていると有効になる。
(デフォルトは0である)

この設定を行うと、送受信が完了してキューから削除されるメールデータがsavedキューに保存されるようになる。

後にメール送受信のデバッグ(?)を行いたい時に使える可能性あり。

この設定後、放っておくとsaved内のファイル数が無限に増え続けるので、定期的に削除する運用を検討する必要がある。

削除は普通にrmコマンドで消せば良い。

Postfixが稼動しているメールサーバでレスポンスが異常に悪くなった場合は、オープンリレーになっていて、踏み台として使われている可能性あり。
メールを大量に受信し過ぎて処理が追いつかなくなっている。

Linuxを再起動しても解消されないので、一旦Postfixを停止してみる。
この時点で解消されればほぼ間違いなし・・・かな。

その後の対応はキューの内容をチェックして、異常に件数が多ければキューをクリアする。
ただし不正なメール以外も削除されるので、大事なメールが来ている可能性がある場合は使えない。

■メールキュー内のメッセージの表示

# mailq

■メールキュー内の全メッセージの削除

# postsuper -d ALL

その上でPostfixの設定の見直しを行い、Postfixを起動する。

スパムメールなどでメールキューが溢れてしまった場合にメールキューのクリアを実行する。

まずはこれ以上メールが来ないようにPostfixを停止する。

# /etc/rc.d/init.d/postfix stop

次にキューに溜まっているメールの確認。
件数が多い場合は表示にものすごい時間がかかるので注意!

# mailq

キューの実体はファイルなので以下のディレクトリを確認することでも可能。

# ll /var/spool/postfix/キュー名/

キュー名は
・maildrop
・incoming
・active
・deffered
がある。(他にもあるかも?)
1メッセージが1ファイルになっている様子。

すべてのキューのメッセージを削除するには以下のコマンドを実行する。

# postsuper -d ALL

個別にキューを指定して削除することも可能。

# postsuper -d deferred

【関連サイト】
 コマンドリファレンス

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPostfixカテゴリに属しているものが含まれています。

前のカテゴリはPHPです。

次のカテゴリはPostgreSQLです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。