SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Office 365 を SMTP リレーとして使用する

leave a comment

Office 365 を既存のメール環境と置き換える場合、運用/監視で使用している SMTP サーバーも合わせて置き換えが発生することがあるかと思います。

監視メールを送っている場合、以下のような構成になっていることがあります。
image

アプリケーションサーバーが監視用のメールを SMTP サーバーに送信し、その SMTP サーバーが社内の運用担当者や社外の運用担当者にメールを送信するという構成となっています。

Office 365 を導入し、社内の SMTP サーバーを廃止 / 使用し続ける際の考慮点を少しまとめてみたいと思います。

■社内 SMTP サーバーを廃止する場合


まずは、社内の SMTP サーバーを廃止するという構成で考えてみたいと思います。

Office 365 を使用する場合、メールの配信経路は以下のようになります。
image

社内の SMTP サーバーを廃止しているため、すべてのメールを Office 365 の Exchange Online から送信する必要が出てきます。
Office 365 を SMTP リレーとして使用する場合は以下の技術情報が参考になります。
Office 365 の SMTP リレーを構成する方法

この技術情報に書かれているように、送信側で以下の条件を満たすことができれば Office 365 を SMTP リレーとして使用することが可能です。

  • Exchange Online メールボックスを持つユーザー
  • ポート587に送信されたSMTP
  • Transport Layer Security (TLS) の暗号化が有効になっている
  • メールボックスのサーバー名

Exchange Online から SMTP でメールを送信しようとした場合、TCP:25 ではなく TCP:587 を使用し、メールボックスを持つユーザーの認証情報を使用してメールを送信する必要があります。

使用しているソフトやプログラムによっては認証情報を設定せずに、オープンリレーとなっている TCP:25 を使用する SMTP サーバーでメールを送信するような仕組みになっていることがあります。

このような環境から Exchange Online を経由して SMTP リレーをする際の構成として、IIS の SMTP を利用する方法があります。
既存のソフトやアプリケーションから TCP:25 以外でメールが送信できない / SMTP の認証情報を設定できない場合、IIS の SMTP を間に介すことで以下のような構成をとることができます。
# 上述の設定が可能な場合は直接メールを送る設定で問題ありません。

image

この構成が KB に書かれている IIS の SMTP を使用した Office 365 の SMTP リレーになります。

IIS の SMTP を社内のオープンリレーの SMTP サーバーとして使用して、IIS の SMTP で認証情報と TCP:587 を使用してメールを送信させるという構成になります。

基本的な設定内容については KB に書かれているものになります。

手順としては、

  1. Exchange Online が有効なユーザーを作成します。
    この時のユーザーですがフェデレーション ID ではなく、クラウド ID (~.onmicrosoft.com または、フェデレーション ID ではないディレクトリ同期のID) を使用する必要がありそうです。
  2. Exchange Onloine を有効にしたメールサーバーの情報を確認します。
    SMTP の送信時に使用するユーザーで Office 365 にサインインをし、Outlook Web App を開きます。
    image
    ヘルプアイコンの [バージョン情報] をクリックして、ユーザーが使用しているメールサーバーの情報を確認します。
    image
    外部 SMTP 設定が IIS の SMTP でリレーをする際の接続先の SMTP になりますのでこの値を控えておきます。
    image
  3. OS 標準の SMTP サーバーをインストールしします。
    image
  4. SMTP の管理コンソールを開き、ドメインを新規作成します。
    image
    ドメインの種類は [リモート] にし、
    image
    全ドメイン用の設定をするため、ドメイン名には SMTP リレーでメールを送信する際のドメイン名を設定します。
    [*] や [*.*] という設定ができませんので [*.com] / [*.jp] というように送信するドメイン名に合わせて個別に設定する必要がありそうです。
    image
  5. ドメインの作成が終了したら、作成したドメインのプロパティを設定します。
    image
    [このドメインへ受信メールを中継する] を有効にして、対象のドメインに対してのメールのリレーを許可し、[すべてのメールをスマート ホストに転送する] に送信で使用するユーザーが使用している Exchange Online の外部 SMTP 設定のサーバー名を指定します。
    image
  6. [送信セキュリティ] をクリックして、基本認証にメール送信時に使用する Exchange Online のユーザーのクラウド ID を設定し、[TLS 暗号化] を有効にします。
    image
    以上でドメインの設定は終了です。
  7. 次に、[SMTP  Virtual Server #1] のプロパティを開きます。
    image
  8. [配信] の [送信接続] をクリックして、
    image
    TCP ポートを [587] に設定します。
    image
  9. [送信セキュリティ] をクリックして、ドメインの詳細設定と同様の設定をします。
    # ドメインの詳細設定で実施しておけばこの設定は不要かもしれません。
    image

以上で、設定は完了です。

この設定をしておけば、送信者として基本認証で設定したユーザーが指定されたメールであれば IIS の TCP:25 から Exchange Online を経由してメールを配信することが可能になっているはずです。

基本認証で設定したユーザーとメール送信時の送信者が一致しない場合は、[550 5.7.1 Client does not have permissions to send as this sender,] でエラーになってしまうようです。

 

■社内 SMTP サーバーを廃止しない場合


社内 SMTP サーバーを廃止しない場合は、MX レコードの内容に注意する必要があります。

Office 365 を導入する場合、MX レコードを Exchange Online に設定します。
この際に、外部へメールを送信している社内の SMTP サーバーを MX レコードから外してしまうと、DNS の逆引きによりメールの送信元確認をしているようなメールサーバーにメールの送信ができなくなります。

社内の SMTP サーバーからメールを配信する場合、MX レコードに

  • 優先順位が高い MX レコードとして Exchange Online のレコードを設定
  • 優先順位が低い MX レコードとして社内の SMTP サーバーからメールを送信する際に使用されるグローバル IP を設定

というような対応をする必要が出てくると思います。

この場合、社内の SMTP サーバーも外部向けの DNS の MX レコードとして登録がされてしまっているため、Exchange Online で障害外発生しており、通信ができない場合、社内 SMTP サーバーに外部からのメールが送信されてしまう可能性がありますので注意が必要です。

Office 365 に移行する際はユーザーのメールだけでなく、運用で使用しているメールの経路がどのようになるか考えるのも重要になってきそうですね。

Written by masayuki.ozawa

1月 1st, 2012 at 8:05 pm

Posted in Office 365

Tagged with

Leave a Reply

*