Postfix Ver.3.3.1

 要件定義
  • Maildir形式によるメールサーバ構築

  • 仮想ドメイン(バーチャルドメイン)、仮想ユーザーをサポート
      一台のサーバで複数のドメインを送受信する
      ユーザーを作らずにメールアカウントを作る

  • smtp認証(SMTP-AUTH)
      外部ネットワークからのメール送信


  •  yum インストール
    # yum install postfix


     /etc/postfix/main.cf 編集
    # 受信を許可
    inet_interfaces = all

    # 最終行に追記
    myhostname = hostname.com

    # バーチャルドメインの設定
    virtual_mailbox_domains = aaa.com bbb.jp
    virtual_mailbox_base = /home/mail
    virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
    virtual_alias_maps = hash:/etc/postfix/virtual_alias

    virtual_uid_maps = static:5000
    virtual_gid_maps = static:5000


    # smtp auth 設定
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtp_sasl_security_options = noanonymous
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,check_relay_domains,reject


    # mkdir /home/mail
    # chmod 777 /home/mail


     /etc/postfix/virtual_mailbox 編集
    taro@aaa.com aaa.com/taro/Maildir/
    hanako@bbb.jp bbb.jp/hanako/Maildir/
    末尾のスラッシュがあればMaildir形式、なければmailbox形式になる


     設定反映
    # postmap hash:/etc/postfix/virtual_mailbox
    Postfixの再起動だけでは反映されない。


     /etc/postfix/main.cf 編集
    サブミッションポート設定
    -#submission inet n - n - - smtpd
    +submission inet n - n - - smtpd


     /etc/postfix/virtual_alias 編集
    jiro@example.com example

     設定反映
    # postmap /etc/postfix/virtual_alias


     ipv6停止時の設定
    # vi /etc/postfix/main.cf

    -inet_protocols = all
    +inet_protocols = ipv4


     /etc/aliases 編集
    example: "/usr/local/bin/php /usr/local/apache2/htdocs/script.php > /dev/null 2>&1"

    動作確認用として
    demo: "| echo `date +\%Y/\%m/\%d_\%H:\%M:\%S` >> /tmp/test.log"
    とすれば
    ログを残せる

     設定反映
    # newaliases


     バーチャルドメインにて空メール処理する場合
    # vi /etc/postfix/main.cf

    virtual_alias_domains = example.jp example.net example.com
    virtual_alias_maps = hash:/etc/postfix/virtual_alias


    # vi /etc/postfix/virtual_alias
    特定のアドレスで処理する場合
    hoge@example.jp example

    # postmap /etc/postfix/virtual_alias


    ドメイン宛に送られてきたものすべてを処理する場合
    @example.jp example
    特定のアドレスで処理する場合、受信可能なアドレスが必要な場合
    kara@example.jp kara


    # vi /etc/postfix/virtual_mailbox
    特定のアドレスで処理する場合、受信可能なアドレスが必要な場合
    taro@example.jp example.jp/taro/
    hanako@example.jp example.jp/hanako/

    # postmap /etc/postfix/virtual_mailbox


    # vi /etc/aliases
    example: "| /usr/local/bin/php -f /usr/local/apache2/htdocs/script.php > /dev/null 2>&1"
    # newaliases



     OP25B 対応 外部SMTP リレー
    # yum install cyrus-sasl-md5

    # vi /etc/postfix/main.cf
    +relayhost = [smtp.hoge.com]:587

    -inet_protocols = all
    +inet_protocols = ipv4

    +smtp_sasl_auth_enable = yes
    +smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    +smtp_sasl_security_options = noanonymous
    +smtp_sasl_mechanism_filter = LOGIN,PLAIN,CRAM-MD5

    # vi /etc/postfix/sasl_passwd
    [stmp.hoge.com]:587 user@id.com:password

    # postmap /etc/postfix/sasl_passwd


    更新 2018.10.29