サーラリマンは働き過ぎ、社畜化に注意しよう!!

postfix debug

postfix
スポンサーリンク

エラー確認

sudo tail /var/log/mail.log

No route to host

Outbound port 25 Blocking(OP25B)が原因である。
ISPが迷惑メール対策として25番ポートに制限をかけている。

解決方法

SMTP認証の設定をすればOK

relayhost

ローカル宛以外のメールを別のサーバ経由にて送信する場合にはmain.cf内のrelayhostにて指定すればよい。メールサーバを複数台で運用している場合などはここでゲートウェイとなるメールサーバ名を記述します。

relayhost = [smtp.gmail.com]:587
relayhost = [192.168.1.6]

[hostname] のように、転送先ホスト名を [ ] で囲むと MX検索をしなくなる。

複数行指定した場合、下の行が優先される。

特定のドメインごとにリレー先を変えるには、transport で設定する。

transport

main.cf

transport_maps = hash:/etc/postfix/transport

transport テーブルの例

example.com    :
foo.com        smtp:[mail.foo.com]
bar.co.jp      smtp:[mx.bar.co.jp]
*              smtp:10.20.30.40
  • 1行目: リレーせず直接ローカル配信する設定。
  • 2,3行目: 特定のドメインをリレーさせる設定。
  • 4行目: その他すべてをリレーさせる設定。

transport テーブル編集後は、ハッシュ化する

 $ sudo postmap /etc/postfix/transport

リレー先サーバーがSMTP認証(SMTP-AUTH)を要求する場合の設定

SMTP認証(SMTP-AUTH)が必要なサーバにリレーする場合、Postfix SMTP クライアントの SASL 認証機能を有効にすることで SMTP Auth に対応することができる。

main.cf の設定

relayhost = [submission.example.org]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
relayhost
ローカルメール以外をリレーするメールサーバ名(ホスト名)を指定する。
smtp_sasl_auth_enable
デフォルト: no
Postfix SMTP クライアントの SASL 認証を有効にする。
smtp_sasl_password_maps
デフォルト: 指定無し
リレー先サーバのアドレスと、認証で使用するユーザ名とパスワードを記述したファイルを指定する。
smtp_sasl_security_options
デフォルト: noplaintext, noanonymous
Postfix SMTP クライアントで使用する認証メカニズム。
noplaintext
平文パスワードを使う認証方法を許可しません。
noactive
active (非辞書) 攻撃を受けるような方法を許可しません。
nodictionary
passive (辞書) 攻撃を受けるような方法を許可しません。
noanonymous
匿名ログインを許可しません。
mutual_auth
相互認証を提供する方法のみを許可します (SASL バージョン 1 では使えません)。

smtp_sasl_password_maps の書き方

    1. リレー先サーバのアドレスと、認証で使用するユーザ名とパスワードを記述したファイル /etc/postfix/relay_password を作成する。

/etc/postfix/relay_password の内容

mail.example.com              username:password
[submission.example.org]:587  username:password

main.cf の relayhost で記述したメールサーバ名(ホスト名)と同じ記述をしないとうまく動作しない。

例:
relayhost で [smtp.example.com] と記述した場合、smtp_sasl_password_maps でも [smtp.example.com] と記述する必要がある。

postmap コマンドを使用し、パスワードファイルから検索データベースを作成する

$ sudo postmap hash:/etc/postfix/relay_password
postfix
スポンサーリンク
シェアする
ふじやんをフォローする
なんでもDIY

コメント