Tag: OSX/Postfix

目次

参考情報

前書き

  • デフォルトで入っているけど有効化されていない?
  • cronのメールを飛ばすにはgmailやプロバイダのsmtpサーバーにリレーするように設定しないといけない。証明書うんぬんでエラーがでるかも。
  • サーバーとしてさくらのメールボックスを使ってみた。

Lionでの設定例

/etc/postfix/main.cfを編集

  • postfixのメイン設定ファイルmain.cfを編集する。relayhostは契約したドメインになる(サブドメインでも可能)
    relayhost = [xxx.sakura.ne.jp]:587
    smtp_sasl_auth_enable = yes 
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_sasl_mechanism_filter = plain
    smtp_use_tls = yes
    

sasl_passwdを生成

  • /etc/posftfix/sasl_passwdを作成。メールアドレスやパスワードは所定のものに変更する。
    [xxx.sakura.ne.jp]:587 zzz@xxx.sakura.ne.jp:PASSWD
  • ハッシュ化。sasl_passwd.dbができる。
    sudo postmap sasl_passwd
  • 元のsasl_passwdは削除しておく。
     sudo rm sasl_passwd
  • 設定ファイルチェック&リロード(起動していない場合はsudo postfix start)。
    sudo postfix check
    sudo postfix reload

この段階で送信テスト

  • 実はこの段階で送信テストできる。postfixはオンデマンドで起動するはずなの自動起動うんぬんは関係ない。
  • 以下のテキストファイルmessage.txtを作成
    From: zzz@xxx.sakura.ne.jp
    To: aaa@gmail.com
    Subject: test
    
    test
    
  • 以下のコマンドで送信
    sendmail -t < message.txt
  • ポイントはFromアドレスをプロバイダアドレス(この場合はさくらメールボックスのアドレス)にすること。このアドレスがあってないと送信してくれない事がある(ノーチェックのところもあるかもしれない)。
  • 遅れない場合は/var/log/mail.logを確認。

Envelop Fromを書き換える

  • プロバイダのSMTPサーバーがFromアドレスのチェックを行っている場合、これを書き換えないとメールが送信できなくなってしまう(cronからのメールなどFromアドレスが指定できない場合があるので)。
  • まず/etc/postfix/sender_mapsを作る。
    /^.*$/ zzz@xxx.sakura.ne.jp
  • main.cfの最後に以下を追加。
    sender_canonical_maps = regexp:/etc/postfix/sender_maps
  • 設定を読み込む
    sudo postfix reload

この段階の送信テスト

  • Envelop Fromを書き換るようにしたので、Fromアドレスを特に指定しないmailコマンドなどでもメールが遅れるはず。
    mail aaa@gmail.com
    Subject: test this is test mail

    CTRL-D>

    • 遅れていればOK。

cronの出力を任意のアドレスに転送

  • /etc/postfix/aliasesを編集する。cronの出力はroot宛てメールなので、rootメールの転送先を指定すればよい。
    root:           aaa@gmail.com
    
  • 編集後、newaliasesを実行。
    sudo newaliases

トラブルシューティング

certificate verification failed といわれる

  • ログに上記警告メッセージが表示される。メールの送信そのものはできているのだが気持ち悪い。
  • SMTPサーバーの証明書がローカルにないのが原因?
  • gmailの場合の解決方法があちこちにある。 LionでPostfix+Gmail – Aerialartsとか。
  • 一般プロバイダ(さくらなど)でも同じようにすればいいのかな(確信無し)。
  • 証明書を表示する。
  • openssl s_client -connect xxx.sakura.ne.jp:995 -showcerts
  • 証明書が何個か表示される。
    -----BEGIN CERTIFICATE-----
    なぞの文字列
    -----END CERTIFICATE-----
    
  • BEGIN〜ENDを含めて何個か表示された証明書全部を/etc/postfix/certs/cacert.pemに保存。
  • master.cfを編集。以下を追加。
    smtp_tls_CAfile = /etc/postfix/certs/cacert.pem
  • smtp_tls_CApath = /etc/postfix/certs を指定する方法はなぜかうまく行かなかった。
  • メールを送ってみて警告が表示されなければOK。

設定

自動起動設定


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:46:23