ASP.NET MVC 3アプリに適用
ASP.NET MVC 3は、Webの世界でメジャーなMVCスタイルでの開発をASP.NETで行うためのフレームワークです(参考:『ASP.NET MVC3入門』)。ASP.NET MVC 3アプリの開発にはVisual Studio 2010が必要で、Visual Studio 2010もSecure Mail 2.0Jの動作保証環境ではありません。
プロジェクトの作成
Visual Studio 2010を起動し、新規プロジェクトの作成で[ASP.NET MVC 3 Webアプリケーション]を選択します。
最終的にインターネット上のホスティングサービスに配置して動作チェックをするため、テンプレートは[インターネットアプリケーション]を選択します。
Secure Mail 2.0Jを使う前準備
Visual StudioのプロジェクトでSecure Mail 2.0Jを使うには、Secure Mailのコンポーネントの参照設定が必要です。
- ソリューションエクスプローラでプロジェクトを右クリックして[参照の追加]メニューを選択
- Dart.PowerTCP.SecureMail.dllを参照に設定
- ソリューションエクスプローラでプロジェクトを右クリックして[追加]-[新しい項目]メニューを選択
- テキストファイルとして「licenses.licx」を追加
Dart.PowerTCP.SecureMail.Smtp, Dart.PowerTCP.SecureMail Dart.PowerTCP.SecureMail.MessageStream, Dart.PowerTCP.SecureMail
モデルの追加
今回のサンプルでは、/Home/Index/のView(Webページ)にメール送信用のページを作成します。このViewで使用するロジックは、ModelsフォルダにHomeModelsモデルを作成して記述するのがMVCスタイルです。そのため、Secure Mailを使用するコードはHomeModelsモデルの中に記述することになります。
Imports System.ComponentModel Imports System.ComponentModel.DataAnnotations Public Class SendMailModel <Required(ErrorMessage:="SMTPサーバは必須です。")> <Display(Name:="SMTPサーバ")> Public Property SmtpServer As String <Required(ErrorMessage:="ポート番号は必須です。")> <Display(Name:="ポート番号")> Public Property SmtpPort As Integer <Required(ErrorMessage:="UserIDは必須です。")> <Display(Name:="UserID")> Public Property UserID As String <Required(ErrorMessage:="パスワードは必須です。")> <DataType(DataType.Password)> <Display(Name:="パスワード")> Public Property Password As String <Required(ErrorMessage:="メールアドレスは必須です。")> <DataType(DataType.EmailAddress)> <Display(Name:="メールアドレス")> Public Property MailAddress As String <Required(ErrorMessage:="送信先メールアドレスは必須です。")> <DataType(DataType.EmailAddress)> <Display(Name:="送信先メールアドレス")> Public Property ToAddress As String <Required(ErrorMessage:="件名は必須です。")> <Display(Name:="件名")> Public Property Subject As String <Required(ErrorMessage:="本文は必須です。")> <DataType(DataType.MultilineText)> <Display(Name:="本文")> Public Property Body As String End Class Public Class SendMailService Public Function SendMail(smtpServer As String, smtpPort As Integer, userID As String, password As String, mailAddress As String, toAddress As String, subject As String, body As String, result As String) As Boolean Dim isOK As Boolean = False Try Using _smtp As New Dart.PowerTCP.SecureMail.Smtp _smtp.Username = userID _smtp.Password = password _smtp.Server = smtpServer _smtp.ServerPort = smtpPort Using _msg As New Dart.PowerTCP.SecureMail.MessageStream _msg.From = New Dart.PowerTCP.SecureMail.MailAddress(mailAddress) _msg.To.Add(New Dart.PowerTCP.SecureMail.MailAddress(toAddress)) _msg.Charset = "ISO-2022-JP" _msg.ContentType = "text/plain" _msg.Header.Add(HeaderLabelType.ContentTransferEncoding, "7bit") _msg.Subject = subject _msg.Text = body _smtp.Send(_msg) isOK = True End Using End Using Catch ex As Exception result = ex.Message End Try Return isOK End Function End Class
- SendMailModelクラス:SendMailModelクラスには、メール送信ページで使う項目をプロパティとして定義します。Required属性で未入力時のエラーメッセージを指定し、Display属性で項目名を定義します。この定義はView側で参照できます。
- SendMailServiceクラス:SendMailServiceクラスはメール送信用のクラスです。このクラスの中でSecure Mailを使用しています。SmtpオブジェクトにSMTPサーバーとの接続に必要な情報を設定し、MessageStreamオブジェクトにメールのヘッダ情報と本文を設定して、SmtpオブジェクトのSendメソッドでメール送信します。