機能
 構成・方式
 動作
 タスク
 導入
    事前確認
    Postfix起動
    設定パラメータ
    基本設定
    MTAのID
    接続を許可
    メール受け取り
    メールを転送
    エイリアス設定
    動的IPアドレス
    リモートへ配送
    メールボックス
    設定変更を有効
    「master.cf」設定
    設定をチェック
    ファイアウォール
 クラスタ化

 事前確認
 ・完全修飾ホスト名を持つ
$ hostname
 ・既存のエイリアスバイナリ形式の確認
Postfixがデフォルトで使用する形式と異なる場合、インデックスファイルを再構築
# newaliases
aliases.dbを更新
 ・PKG     インストール済みパッケージ     名前 : cyrus-sasl     アーキテクチャー : x86_64     バージョン : 2.1.26     リリース : 23.el7     リポジトリー : installed     提供元リポジトリー : base     要約 : The Cyrus SASL library     名前 : cyrus-sasl-plain     アーキテクチャー : x86_64     バージョン : 2.1.26     リリース : 23.el7     リポジトリー : installed     提供元リポジトリー : base     名前 : postfix     アーキテクチャー : x86_64     エポック : 2     バージョン : 2.10.1     リリース : 9.el7     リポジトリー : installed     提供元リポジトリー : base
 Postfix起動
# systemctl start postfix.service
# systemctl enable postfix.service
Pacemakerを使用する場合は、「disable」
 ・起動時の問題は、ターミナルに表示
 ・初期設定終了後の問題は、ログや systemctl status postfix.service で確認
# egrep '(reject|warning|error|fatal|panic):' /var/log/maillog

 設定パラメータ
 ・設定パラメータ
 ・デフォルト値
# postconf -d

 基本設定
 ・参考
 ・main.cf のパラメータの書き方
パラメータ定義は左に余白を残さず行頭から
パラメータと同じ行にコメントは付けない。
値の前後に引用符は付けない。
TABまたはスペースの空白で始まる行は、前の行の継続行
$をパラメータ名の前に置いて、設定済のパラメータ値を参照できる。
複数の値を区切るのは、カンマ、スペース、タブ、新しい行のいずれか
 ・設定変更を有効にする。

 MTAのIDの設定
 ・ホスト名を指定(myhostname)
「myhostname」が指定されていない場合、システムのホスト名を取得
(システムから完全修飾ホスト名が正常に返る場合は指定不要)
「mydomain」が明示的に指定されている場合、それと取得するシステムのホスト名から
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
 ・ドメイン名を指定(mydomain)
myhostname に完全修飾ホスト名がない場合、mydomain にシステムのドメイン名を指定
mydomain とgethostname関数で取得したホスト名から完全修飾ホスト名を作成
#mydomain = domain.tld
 ・myorigin
エンベローブアドレスやヘッダアドレスにドメインが無いとき、追加するドメイン名を決める。
myorigin = $myhostname
#myorigin = $mydomain

 接続を許可
 ・接続を許可する相手を設定(初期状態は自分自身のみ)
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

 メール受け取り
 ・ローカルユーザへの配信の対象になるすべてのドメインをリストアップ
  (メールアドレスが指定に合致すれば他のホストに配送しない。)
 ・デフォルト値はローカルマシンの名前だけを指定
 ・メールのドメインゲートウェイの場合、mydomainを追加
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain

 メールを転送
 ・信頼されたネットワークブロックのSMTPクライアントは、メールの中継を許可する。
 ・信頼するネットワークブロックを指定。
 ・「mynetworks_style」と「mynetworks」がメール送信のために利用できるシステムを決める。
  (「mynetworks」で指定されると、relay_domainは無視できる。)
 ・デフォルトでは、自サーバと同じサブネットに接続する他のマシンからのみ受付。
「mynetworks」を設定すると、「mynetworks_style」パラメータは無視
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 192.168.0.0/24, 127.0.0.0/8
 ・リレーを許可する
 ・「relay_domains」 にマッチするドメインは、配送される。
relay_domains = $mydestination, ・・・
 ・smtpd は受信者アドレスを「relay_recipient_maps」で確認し、存在しない受信者を拒否
 ・「relay_recipient_maps」が有効の場合
 ・「relay_recipient_maps」で受け取れるドメインのアドレスで有効なものをリストアップ。
メールキューに配送できないメッセージを貯めないようにする。
relay_recipient_maps = hash:/etc/postfix/relay_recipients
「relay_recipients」にアドレス列記
有効なアドレスを列記できない場合はワイルドカードを使用
「relay_domains」の全アドレス
# postmap /etc/postfix/relay_recipients
 ・「relay_recipient_maps」が無効の場合(「relay_recipient_maps」行を#(デフォルト 空白))
$relay_domains にマッチしても、存在しない受信者を確認しない。
 ・確認
# strings relay_recipients.db
 ・エラー例
Relay access denied
Windows Live メール エラー ID: 0x800CCC79
 ・SMTP認証より楽な方法の検討
リモートユーザに静的なIPアドレスを割り当てられないか
リモートユーザに別のSMTPサーバを利用させられないか

 エイリアス設定
 ・Mailmanなども

 動的IPアドレス(SMTP認証)
 ・SASL
 ・pop-before-smtp   動作 
 ・DRAC
 ・WHOSON

 認められたリモートの配送先のみに転送
 ・一つ以上のトランスポートルックアップテーブルを指し示す。
 ・各ドメインのメールを認められた配送先に向ける。
 ・ドメイン毎に配送を指定できる(transport に列記)
 transport_maps = hash:/etc/postfix/transport
# postmap /etc/postfix/transport
 ・確認
# strings transport.db

 メールボックスを設定
 ・「main.cf」     # DELIVERY TO MAILBOX     #home_mailbox = Mailbox (デフォルトhome_mailbox =)     #home_mailbox = Maildir/     #mail_spool_directory = /var/mail (デフォルト(リンクmail -> spool/mail))     #mail_spool_directory = /var/spool/mail     #mailbox_command = /some/where/procmail (デフォルト、mailbox_command =)     #mailbox_command = /some/where/procmail -a "$EXTENSION"  ・/home/username/Maildir/ に保存
#home_mailbox = Mailbox
home_mailbox = Maildir/
 ・DRBDで /var/spool/mail がマウントされている場合
#home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail/
各ユーザ毎に Maildir ディレクトリを作成
# mkdir /var/spool/mail/foobar
# chown foobar:foobar /var/spool/mail/foobar
# chmod 700 /var/spool/mail/foobar

 設定変更を有効にする
# postfix reload

 「master.cf」の設定
 ・元の設定ファイルのバックアップ
 ・サブミッションポートの使用を有効にする。     submission inet n - n - - smtpd
 設定をチェック     # postfix check
 ファイアウォール     # firewall-cmd --add-service=smtp --zone=public     # firewall-cmd --add-service=smtp --zone=public --permanent