【メールサーバ】Postfix設定その3(OP25B対策BIGLOBE利用)

  • Postfix設定(OP25B対策BIGLOBE利用)

    自宅ネットワークに設置したSMTPサーバーが外部へメール送信する際、
    25番ポートを利用しますが、ISPがOP25B(Outbound Port 25 Blocking)対策を行っている場合、メール送信ができません。
    そこで外部のSMTPサーバーのうち、587番ポートで送信してくれるサーバーを中継してメールを送信を行います。

    下記内容はBIGLOBE用ですが、gmailを中継する場合、「relayhost」の値は
    「smtp-relay.gmail.com:25」に変更します。
    後はgmail側の設定として下記サポートサイトに従ってください。
    https://support.google.com/a/answer/2956491?hl=ja

    vi /etc/postfix/main.cf
    
    下記内容を追加
    ####################################################################
    # OP25B対策(BIGLOBE用設定)
    # smtp :他のSMTPメールサーバに接続しに行くときのクライアントとしての設定
    ####################################################################
    
    # ISPのSMTPメールサーバー名を指定
    # プロバイダのメールサーバーから送信するメールはOP25Bの影響は受けないため、
    # 全ての送信メールをプロバイダのメールサーバーを経由するようにする。
    relayhost = [msagw.biglobe.ne.jp]:25
    
    # プロバイダのメールサーバーにSMTPで接続
    smtp_sasl_auth_enable = yes
    
    # SMTP認証情報設定ファイルパス
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    
    # プロバイダのSMTPメールサーバーが対応している認証方式(例:LOGIN, CRAM-MD5, PLAIN)
    smtp_sasl_mechanism_filter = cram-md5, login, plain
    
    # 匿名ログイン不許可(クライアントとしての設定)
    smtp_sasl_tls_security_options = noanonymous
    
  • メール中継用設定

    vi /etc/postfix/sasl_passwd
    
    下記内容を追加([]も必要です)
    [SMTPメールサーバー名]:587 ユーザー名:パスワード
    
    SMTPメールサーバー名:中継先のSMTPメールサーバー名
    ユーザー名:中継先のメールアカウント名
    パスワード:中継先のメールパスワード
    
    chmod 640 /etc/postfix/sasl_passwd
    postmap /etc/postfix/sasl_passwd
    
  • 残念なお知らせ
    BIGLOBEは2014年3月にメール中継のサポートを切ったようです。
    そのため上記設定を行っても送信できません。
    ログを確認してみると下記内容が出力されています。

    cat /var/log/maillog
    
    status=deferred (SASL authentication failed; 
    cannot authenticate to server msagw.biglobe.ne.jp[xxx.xxx.xxx.xxx]: no mechanism available)
    warning: database /etc/postfix/sasl_passwd.db is older than source file /etc/postfix/sasl_passwd
    warning: SASL authentication failure: No worthy mechs found
    

    中継メールサーバーとしてgmailを利用しようかと思いましたが、
    一番簡単そうなMyDNSを利用します。