Microsoft IIS 7.5

本章はIIS 7.5と ASP.NET が動作するWindows Server 2008 R2でメール送信を行うための設定に関して記載しています。SSL/TLSが必要な場合、それぞれ設定が必要になります。

IIS 7.5の設定

はじめにSendGridと連携するためにIISの設定を行う必要があります。本章では、サイトを設定済みでルートディレクトリが正しく表示されることを前提にしています。

  1. WindowsのIIS 7.0/7.5マネージャーを開きます。
  2. サイトをクリックして、画面右側に設定ページが表示されることを確認します。
  3. 画面下部の ASP.NET セクションで SMTP電子メール をダブルクリックします。
  4. メールアドレスフィールドに送信者として表示されるメールアドレスを入力します。
  5. まだ有効化されていない場合、 SMTPサーバーへの電子メール配信 ラジオボタンをクリックします。
  6. SMTPサーバにはlocalhostと入力します。
  7. ポートには25と入力します。
  8. 認証の設定で 必要なし を選択します。
  9. 画面右側のアクションペインで適用を選択します。

localhostのIIS6.0サーバに対して追加の設定を行う場合、ここで設定を行い、IIS 6.0 GUI上で同じ認証を行ってください。

SMTPサービスの有効化

  1. スタートメニュー > 全てのプログラム > 管理ツール > サーバーマネージャーを開きます。
  2. ナビゲーションペイン上で機能をクリックします。
  3. 機能の追加リンクをクリックしてウィザードを開始します。
  4. リストを下にスクロールしてSMTPサーバーを表示し、チェックボックスをONにします。機能の追加ウィザードが表示され、SMTPサーバーに依存する全てのアイテムがリスト表示されます。 必要な役割サービスを追加をクリックします。
  5. 次へを2回クリックします。
  6. 有効なIIS役割サービスのリストを確認して追加したいもののチェックボックスをONにします。
  7. 次へをクリックした後でインストールをクリックします。

SMTPサーバーがインストールされると、IIS 6.0仮想サーバが有効化され、IIS 6.0 マネージャースナップインが有効になります。

メールのリレー設定の変更

  1. スタートメニュー > 全てのプログラム > 管理ツール > IIS 6.0 マネージャーを開きます。
  2. SMTP Virtual Server #1上で右クリックしてプロパティを選択します。
  3. サーバの設定状況を確認しやすいように ログ収集を有効にする をクリックして有効化します。
  4. プロパティ をクリックして ファイル名およびロールオーバーに地域設定を使用する を有効化します。
  5. 詳細設定 タブをクリックして以下のアイテムをチェックします: 日付, 時間, クライアントIPアドレス, ユーザー名, サービス名, サーバー名, サーバーIPアドレス, サーバーポート, メソッド, プロトコルの状態, 送信バイト数, プロトコルバージョン, ホスト。
  6. OK をクリックします。
  7. アクセス タブをクリックして 中継の制限 セクションで内で 中継 ボタンをクリックします。
  8. 追加 をクリックして127.0.0.1と入力して OK をクリックします。IPアドレスがアクセス許可リストに表示されます。
  9. 以下のリストに含まれるコンピュータのみ を選択し、127.0.0.1 からの接続を許可します。
  10. OK をクリックして アクセス タブに戻ります。
  11. 配信 タブを選択して 送信セキュリティ ボタンを選択します。
  12. 基本認証 をクリックして ユーザー名 にapikey(固定文字列)、パスワード にSendGridアカウントで発行したAPIキーを入力します。
  13. OK をクリックします。
  14. 詳細設定 ボタンをクリックします。
  15. スマートホスト にsmtp.sendgrid.netと入力します。
  16. OK を2回クリックしてIIS 6.0マネージャーを閉じます。

ドメインの設定

この時点で、SendGridにメールをリレーするSMTPドメインの設定を行う必要があります。詳しくはマイクロソフト社のドキュメントを参照してください。

新しい設定のテスト

はじめに、telnetを使ってテストします。Windows上でtelnetクライアントを開きます。コマンドプロンプトで以下のコマンドを実行します:

1
telnet localhost 25

ここでtelnetを実行して、以下のコマンドをそのまま実行してください。ENTERで改行します。(正しく設定されていれば、ピリオドを入力するまではサーバは何も動作を行いません):

1
2
3
4
5
6
EHLO yourdomain.com
MAIL FROM: test@yourdomain.com
RCPT TO: recipient@anotherdomain.com
DATA
This is a test email for SendGrid operations.
.

EHLO コマンドとドメイン名を入力することでメールサーバに対してどのドメインから送信するかを伝えます。MAIL FROM: コマンドは標準のMIMEエントリで、送信者のメールアドレスを意味します。RCPT TO: コマンドはメッセージ送信先アドレスを意味します。 DATA コマンドは次に入力される情報がメッセージのボディであることをサーバに伝えます。最後にデータを入力後、ピリオド(.)を入力するとサーバに入力が完了したことを伝えます。Enterを押すとメッセージが送信されます。

手動で入力したコマンドが動作したら、以下の成功コードが返ります:

1
250….Queued mail for delivery

また、先ほど有効化したログ機能を使ってテストすることもできます。テキストエディタでIIS 6.0, 7.5のログファイルを表示して確認することができます。インストールの手順内でログファイルの格納場所を変更していなければ C:\Windows\System32\LogFiles ディレクトリ配下にログが保存されます。

OutboundConnectionCommand and Outbound ConnectionResponse stepsを経てサーバがメールを送信したことを示しています。EHLO, AUTH, MAIL, RCPT, DATA, 終了など様々なステージの情報とともにメールの送信が成功しています。 最後にSendGridのダッシュボードで設定が正しく行われていることを確認します。SendGridの認証情報を使ってSendGridのダッシュボードにログインします。ダッシュボードタブでSendGridを通じて最近送信したメッセージのリストを確認することができます。この数字はtelnetやASP.NETのテストスクリプトを使ってメールを送信すると1ずつインクリメントされていきます。