CodeZine(コードジン)

特集ページ一覧

Windows Azure上で「Secure Mail 2.0J」を使ってみよう
~最新の環境で日本語メールを送信する~

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/06/23 14:00
目次

Windows Azureアプリに適用

 ASP.NET MVC 3アプリからSecure Mailが使えるのであれば、ASP.NET MVC 3アプリをWindows Azure上で動かした場合もSecure Mailが使えるかもしれないと考えました。現在、Windows AzureとしてSMTPサーバ機能は提供されていないため、Windows Azureアプリからメールを送信する時は、外部のSMTPサーバに接続してメール送信を行います。

 Windows AzureにももちろんSecure Mailはインストールされていませんが、ASP.NET MVC 3をホスティングサービスへ発行する場合と同様に、DLLのローカルコピープロパティを「True」にしておけば、Windows Azureアプリとして作成してWindows Azureに配置した場合もSecure Mailの動作に必要なDLLがコピーされます。

Windows Azureアプリを作成

 Windows Azureアプリを作成するには次の手順を踏みます。

  1. Visual Studio 2010を管理者として実行
  2. 新規プロジェクトの作成から[Windows Azureプロジェクト]を選択

    図6 プロジェクトテンプレートの選択
    図6 プロジェクトテンプレートの選択
  3. ロールはどのロールも選択しない
  4. ソリューションエクスプローラでソリューション名を右クリックして[追加]-[既存のプロジェクト]メニューを使って、既存のASP.NET Webアプリのプロジェクトを追加
  5. Windows Azureプロジェクト側で「ソリューションWebロールプロジェクト」の追加を実施

    図7 WebRoleの追加
    図7 WebRoleの追加
  6. ASP.NET MVC 3の動作に必要なDLLは残念ながらまだWindows Azureにはインストールされていないため、Secure Mailと同様に必要なDLLの参照設定の[ローカルコピー]プロパティを「True」にしてします。どの参照設定の変更が必要かは『ASP.NET MVC 3をAzureで動かす』を参考にしてください。

    図8 Windows Azureアプリのソリューション構成
    図8 Windows Azureアプリのソリューション構成

 この手順によりASP.NET MVC 3アプリとして稼働していたサンプルをWindows Azure上で動作させるためのWindows Azureアプリが完成します。

Windows Azureに配置

 Windows AzureアプリのVisual Studioでの一通りの動作確認が完了したら、ソリューションエクスプローラのWindows Azureプロジェクトを右クリックして[配置]メニューを選択します。

図9 Windows Azure プロジェクトの配置
図9 Windows Azure プロジェクトの配置

 必要な情報を入れて[OK]ボタンをクリックすればWindows Azureにプログラムの配置が行われます。

図10 Windows Azure Portalでの確認
図10 Windows Azure Portalでの確認

Windows Azure環境での動作確認

 Windows Azure Portalに表示されているDNS nameのURLをクリックすればWindows Azure上で稼働するWebアプリに接続します。

 ここで各種情報をいれて[送信]ボタンをクリックすれば文字化けなく受信できるメールが送信されます。

図11 Windows Azure環境での動作確認
図11 Windows Azure環境での動作確認
リスト6 サンプルからのメール
From: hatsune@wankuma.com
To: hatsune@wankuma.com
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
Subject: =?iso-2022-jp?B?GyRCJDMkbCRPGyhCdGVzdBskQiRHJDkhIxsoQg==?=
Date: Tue, 14 Jun 2011 13:57:38 +00
MIME-Version: 1.0
Status:  U
X-UIDL: 1308059860.25181.mbox401-3

$B$3$l$O(Btest$B$NK\J8$G$9!#(B
図12 受信したメール
図12 受信したメール

おわりに

 ASP.NET MVC 3アプリからWindows Azureアプリを作成してSecure Mailですんなりメールが送信できたのには理由があります。それは次の3行の存在です。

_msg.Charset = "ISO-2022-JP"
_msg.ContentType = "text/plain"
_msg.Header.Add(Dart.PowerTCP.SecureMail.HeaderLabelType.ContentTransferEncoding, "7bit")

 Windows Azureは英語環境なので、明示的に日本語を指定しないと「Content-Type: text/plain; charset="iso-8859-1"」となってしまい、メール本文が文字化けを起こします。Windows Azureを使うときの鉄則である「省略値は日本語指定とは限らないので、明示的に日本語を指定できるときは指定する」はここでも当てはまっていると言えるでしょう。

製品情報



  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 初音玲(ハツネアキラ)

     国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。  個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。  Microsoft MVP for Windows Development...

バックナンバー

連載:現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(Secure Mail)
All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5