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メソッドでメール送信します。

