Office365のExchange OnlineをSMTPサーバにする

2018年5月15日

一見簡単そうでしたが、意外とハマったのでメモがわりに残します。
色々過程はありましたが、これでウチは動いてますよ的な。
書き終えて気がついたのですが、ウチのBlogのカテゴリーにpostfixがないとは!
まぁ確かに普段のpostfixならちょっとググれば判りますからねぇ・・・・

やりたい事としてはroot@fugafuga.org宛に届くメールをhoge@fugafuga.orgローカルのアカウントに転送させてそれをO365のメールへ転送するという事です。
(ややこしくてすみません)

2017年7月5日まではSMTPコネクタ経由で外部のドメインに配送し放題だったのですが、ルールがかわってO365のメールボックスか特定の認証済みドメインにしかSMTPで配送出来なくなりました。
無制限にO365経由でインターネットにSMTP配送は出来なくなったのでご注意ください。

  1. 下ごしらえ
    動作の要件として25番ポートが開いてないとダメなので、お手持ちのファイヤウォールでポートを解放してください。
    また、ライセンスなしのユーザを追加しておきます。
    ここでは、rootという名前のユーザを追加します。
  2. Exchange onlineを設定する
    まぁ当たり前のことなんですが、Exchange Online 管理者ページはPCからアクセスしましょう。私スマホからポチポチやって設定出来ずにハマりました(電池も相当減りました・・・)こちらもこちらのサイトにたどり着くまでわからないことだらけでしたが、
    サイトの記事を読めば一撃でした。だっちさんありがとー11やることは簡単で、SMTPの送信コネクタを新規に作成します。
    作成時の注意点としては、途中に出てくる「Exchangeの内部ヘッダーを残す」のチェックを外し忘れないようにすることくらいでしょうか。
    設定が反映するまで少し時間をおいた方がいいかもしれません。
    (仕事の合間にやっていたので、気がついたら時間が経っていましたのでどこまで即時性があるかはわかりません)
  3. Exchange onlineの設定を確認する
    postfixに必要な設定をOffice365管理センターからもらってきます。
    管理センタートップペーン->ドメインで表示される「規定のドメイン」をダブルクリックします。
    しばらくするとゴチャゴチャとDNSレコードが表示されますが、Exchange Onlineの項目に表示されているMXレコードのホスト名をメモっておいてください。postfixの設定で必要になります。
  4. postfixを設定する
    まず、外部とやりとり出来る所までpostfixを設定します。
    (この辺はぐぐると一撃です)
    で、以下の設定をmain.cfの末尾に追記します。
    必須ではありませんがTLSでSMTP通信を暗号化しておきます。
    [crayon-5bcb59f55f3b4485800303/]
  5. テストする
    では、実際に送信してみましょう。
    設定では全てのメールをO365側に飛ばすことになっていますので、
    家鯖内部のアカウントに対してメールを送信してみます。
    mail hoge@fugafuga.comコマンドを実行した時の/var/log/maillogに出力される内容です。
    ログにある通り、TLSで通信を保護してO365側にリレー出来ていることがわかります。
    [crayon-5bcb59f55f3bb116867754/]
    いやー
    ここまで長かった。
    仕事してるフリして1日コレやってました(コラマテ)