Web/Worker ロールからのメール送信について
本社側の blog にて情報提供はされているのですが、最近、よく質問があるので、Windows Azure からのメール送信について記述しておきます。
Steve Marx が blog の中で記述しているように、専用の SMTP サーバーはありません。また、Worker ロールを使って SMTP サーバーを立てるということも考えられますが、スパム対策等のことを考えると、他の手段を考えた方が良さそうです。
ではどうするかですが、企業内の SMTP サーバーを使うことも可能ですが、その場合には、この blog の Part1 に記述されているような仕組みを準備する必要があります。それよりも Part2 に記述されている Exchange Online を使うと短時間にサービスの構成が可能です。Exchange Online では、30日間無料トライアルも用意されているため、すぐに評価が可能です。以下、簡単に評価方法を記述しておきます。
(1) Exchange Onlineの30日間無料トライアルに申し込む
(2) Exchange Web Services Managed API をインストール
※現状(2011/3/29)、Version 1.1
(3) Visual Studio のプロジェクトで、(2) でインストールしたフォルダの “Microsoft.Exchange.WebServices.dll” を参照追加
※フォルダは、x:\Program Files\Microsoft\Exchange\Web Services\1.1
(4) 以下のコードで簡単なメッセージを送信
ExchangeService ews = new ExchangeService(ExchangeVersion.Exchange2007_SP1); ews.Credentials = new NetworkCredential("email address", "password"); ews.Url = new Uri("https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx"); EmailMessage msg = new EmailMessage(ews); msg.From = new EmailAddress("from name", "from address"); msg.Subject = "テストメール"; msg.Body = new MessageBody(BodyType.Text, "お疲れ様です"); msg.ToRecipients.Add("to address"); msg.SendAndSaveCopy(); |
上記で、https://red003.mail... は、Exchange Online Web サービスの URL になります。アジアでは、このアドレスを利用します。このアドレスは、自動検出の仕組みも使えますが、Outlook から接続する訳ではないので、今回は省略しています。必要な場合は松崎さんの blog で。メール受信は、Part2の blog を見て下さい。