MailDefinition クラス
アセンブリ: System.Web (system.web.dll 内)


MailDefinition クラスをコントロールで使用すると、電子メール メッセージの本文を含むテキスト ファイルまたは文字列から MailMessage オブジェクトを作成できます。MailDefinition クラスを使用して、コントロールによって送信される定義済みの電子メール メッセージの作成を簡略化します。コントロールを使用せずに電子メールを送信する場合は、System.Net.Mail クラスのトピックを参照してください。
文字列を置換文字列に割り当てる IDictionary インスタンスを CreateMailMessage メソッドに渡して、電子メール メッセージの本文内のテキストを置換できます。
MailDefinition クラスによって作成された MailMessage オブジェクトは、SmtpClient クラスの Send メソッドを使用して送信されます。電子メールを送信できるようにするには、Web.config ファイルで SMTP メール サーバーを構成する必要があります。詳細については、「smtp 要素 (ネットワーク設定)」を参照してください。

Web フォーム ページからインターネット 電子メール メッセージを作成するコード例を次に示します。フォームにメッセージのテキストを入力するか、メールの本文として使用するテキスト ファイルの名前を入力できます。このコードは、メッセージに対して 2 つの文字列置換を定義します。フォームの [To] ボックスの受信者リストにより、文字列 "<%To%>" が置換され、From プロパティに指定されたテキストにより、文字列 "<%From%>" が置換されます。
このコードで生成される Web フォーム ページの [Create e-mail and display only] をクリックすると、電子メール メッセージを作成して、MailMessage オブジェクトのプロパティを Web ページに表示できます。[Create e-mail and send] をクリックすると、Web ページに電子メール メッセージを表示し、インターネット電子メールを使用して受信者にメッセージを送信します。
<%@ page language="VB"%> <%@ import namespace="System.Net.Mail"%> <%@ import namespace="System.Reflection"%> <%@ import namespace="System.Collections.Specialized"%> <script runat="server"> Function ShowMessage(ByVal msg As System.Net.Mail.MailMessage) As HtmlTable Dim table As HtmlTable = New HtmlTable Dim topRow As HtmlTableRow = New HtmlTableRow Dim fieldHeaderCell As HtmlTableCell = New HtmlTableCell Dim valueHeaderCell As HtmlTableCell = New HtmlTableCell fieldHeaderCell.InnerText = "Field" topRow.Cells.Add(fieldHeaderCell) valueHeaderCell.InnerText = "Value" topRow.Cells.Add(valueHeaderCell) table.Rows.Add(topRow) Dim p As PropertyInfo For Each p In msg.GetType().GetProperties() Dim row As HtmlTableRow = New HtmlTableRow Dim labelCell As HtmlTableCell = New HtmlTableCell Dim valueCell As HtmlTableCell = New HtmlTableCell If (Not ((p.Name = "Headers") Or _ (p.Name = "Fields") Or _ (p.Name = "Attachments"))) Then labelCell.InnerText = String.Format("{0}", p.Name) row.Cells.Add(labelCell) valueCell.InnerText = String.Format("{0}", p.GetValue(msg, Nothing)) row.Cells.Add(valueCell) End If table.Rows.Add(row) Next Return table End Function Function CreateMessage() As System.Net.Mail.MailMessage Dim md As MailDefinition = New MailDefinition md.BodyFileName = sourceMailFile.Text md.CC = sourceCC.Text md.From = sourceFrom.Text md.Subject = sourceSubject.Text If sourcePriority.SelectedValue = "Normal" Then md.Priority = MailPriority.Normal ElseIf sourcePriority.SelectedValue = "High" Then md.Priority = MailPriority.High ElseIf sourcePriority.SelectedValue = "Low" Then md.Priority = MailPriority.Low End If Dim replacements As ListDictionary = New ListDictionary replacements.Add("<%To%>", sourceTo.Text) replacements.Add("<%From%>", sourceFrom.Text) If useFile.Checked Then Dim fileMsg As System.Net.Mail.MailMessage fileMsg = md.CreateMailMessage(sourceTo.Text, replacements, Me) Return fileMsg Else Dim textMsg As System.Net.Mail.MailMessage textMsg = md.CreateMailMessage(sourceTo.Text, replacements, sourceBodyText.Text, Me) Return textMsg End If End Function Sub createEMail_Click(ByVal sender As Object, ByVal e As EventArgs) Dim msg As System.Net.Mail.MailMessage = CreateMessage() PlaceHolder1.Controls.Add(ShowMessage(msg)) End Sub Sub sendEMail_Click(ByVal sender As Object, ByVal e As EventArgs) Dim msg As System.Net.Mail.MailMessage = CreateMessage() PlaceHolder1.Controls.Add(ShowMessage(msg)) Try Dim sc As SmtpClient sc = New SmtpClient() sc.Send(msg) Catch ex As Exception errorMsg.Text = ex.ToString() End Try End Sub </script> <html> <body> <form id="Form1" runat="server"> <table id="Table1" cellspacing="1" cellpadding="1" width="450px" align="center"> <tr> <td align="center" colspan="3"> <h3>Create an e-mail message</h3> <tr> <td align="right">To:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceTo" runat="server" columns="54"></asp:textbox> <asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" errormessage="*" controltovalidate="sourceTo"></asp:requiredfieldvalidator></td> </tr> <tr> <td align="right">Cc:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceCC" runat="server" columns="54"></asp:textbox> </td> </tr> <tr> <td align="right">From:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceFrom" runat="server" columns="54"></asp:textbox> <asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" errormessage="*" controltovalidate="sourceFrom"></asp:requiredfieldvalidator></td> </tr> <tr> <td align="right"> Priority <td style="WIDTH: 10px"> </td> <td> <asp:dropdownlist id="sourcePriority" runat="server"> <asp:listitem value="Low">Low</asp:listitem> <asp:listitem value="Normal" selected="true">Normal</asp:listitem> <asp:listitem value="High">High</asp:listitem> </asp:dropdownlist> </td> <td> </td> </tr> <tr> <td align="right">Subject:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceSubject" runat="server" columns="54"></asp:textbox> </td> </tr> <tr> <td align="right">Source:</td> <td style="WIDTH: 10px"> </td> <td> <table id="Table2" cellspacing="1" cellpadding="1" width="100%"> <tr> <td style="WIDTH: 100px"> <asp:radiobutton id="useFile" runat="server" text="Use file" width="80px" groupname="textSource" checked="True"></asp:radiobutton> </td> <td style="WIDTH: 11px"> </td> <td> <p align="right">File name:</p> </td> <td> <asp:textbox id="sourceMailFile" runat="server" columns="22">mail.txt</asp:textbox> </td> </tr> <tr> <td style="WIDTH: 100px"> <asp:radiobutton id="useText" runat="server" text="Enter text" width="80px" height="22px" groupname="textSource"></asp:radiobutton> </td> <td style="WIDTH: 11px"> </td> <td> </td> <td> </td> </tr> </table> </td> <td> </td> </tr> <tr> <td align="center" colspan="3"> <asp:textbox id="sourceBodyText" runat="server" columns="51" textmode="MultiLine" rows="15"></asp:textbox> </td> </tr> <tr> <td align="center" colspan="3"> <asp:button id="createEMail" runat="server" text="Create e-mail and display only" onclick="createEMail_Click"></asp:button> <asp:button id="sendEMail" runat="server" text="Create e-mail and send"></asp:button></td> </tr> </table> <p> </p> <p> <asp:placeholder id="PlaceHolder1" runat="server"></asp:placeholder> </p> <p> <asp:literal id="errorMsg" runat="server"></asp:literal></p> </form> </body> </html>
<%@ page language="C#"%> <%@ import namespace="System.Net.Mail"%> <%@ import namespace="System.Reflection"%> <%@ import namespace="System.Collections.Specialized"%> <script runat="server"> HtmlTable ShowMessage(System.Net.Mail.MailMessage msg) { HtmlTable table = new HtmlTable(); HtmlTableRow topRow = new HtmlTableRow(); HtmlTableCell fieldHeaderCell = new HtmlTableCell(); HtmlTableCell valueHeaderCell = new HtmlTableCell(); fieldHeaderCell.InnerText = "Field"; topRow.Cells.Add(fieldHeaderCell); valueHeaderCell.InnerText = "Value"; topRow.Cells.Add(valueHeaderCell); table.Rows.Add(topRow); foreach(PropertyInfo p in msg.GetType().GetProperties()) { HtmlTableRow row = new HtmlTableRow(); HtmlTableCell labelCell = new HtmlTableCell(); HtmlTableCell valueCell = new HtmlTableCell(); if (!((p.Name == "Headers") || (p.Name == "Fields") || (p.Name == "Attachments"))) { labelCell.InnerText = String.Format("{0}",p.Name); row.Cells.Add(labelCell); valueCell.InnerText = String.Format("{0}",p.GetValue(msg ,null)); row.Cells.Add(valueCell); } table.Rows.Add(row); } return table; } System.Net.Mail.MailMessage CreateMessage() { MailDefinition md = new MailDefinition(); md.BodyFileName = sourceMailFile.Text; md.CC = sourceCC.Text; md.From = sourceFrom.Text; md.Subject = sourceSubject.Text; if (sourcePriority.SelectedValue == "Normal") { md.Priority = MailPriority.Normal; } else if (sourcePriority.SelectedValue == "High") { md.Priority = MailPriority.High; } else if (sourcePriority.SelectedValue == "Low") { md.Priority = MailPriority.Low; } ListDictionary replacements = new ListDictionary(); replacements.Add("<%To%>",sourceTo.Text); replacements.Add("<%From%>", md.From); if (true == useFile.Checked) { System.Net.Mail.MailMessage fileMsg; fileMsg = md.CreateMailMessage(sourceTo.Text, replacements, this); return fileMsg; } else { System.Net.Mail.MailMessage textMsg; textMsg = md.CreateMailMessage(sourceTo.Text, replacements, sourceBodyText.Text, this); return textMsg; } } void createEMail_Click(object sender, System.EventArgs e) { System.Net.Mail.MailMessage msg = CreateMessage(); PlaceHolder1.Controls.Add(ShowMessage(msg)); } void sendEMail_Click(object sender, System.EventArgs e) { System.Net.Mail.MailMessage msg = CreateMessage(); PlaceHolder1.Controls.Add(ShowMessage(msg)); errorMsg.Text = String.Empty; try { SmtpClient sc = new SmtpClient(); sc.Send(msg); } catch (HttpException ex) { errorMsg.Text = ex.ToString(); } } </script> <html> <body> <form id="Form1" runat="server"> <table id="Table1" cellspacing="1" cellpadding="1" width="450px" align="center"> <tr> <td align="center" colspan="3"> <h3>Create an e-mail message</h3> <tr> <td align="right">To:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceTo" runat="server" columns="54"></asp:textbox> <asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" errormessage="*" controltovalidate="sourceTo"></asp:requiredfieldvalidator></td> </tr> <tr> <td align="right">Cc:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceCC" runat="server" columns="54"></asp:textbox> </td> </tr> <tr> <td align="right">From:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceFrom" runat="server" columns="54"></asp:textbox> <asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" errormessage="*" controltovalidate="sourceFrom"></asp:requiredfieldvalidator></td> </tr> <tr> <td align="right">Subject:</td> <td style="WIDTH: 10px"> </td> <td> <asp:textbox id="sourceSubject" runat="server" columns="54"></asp:textbox> </td> </tr> <tr> <td align="right"> Priority <td style="WIDTH: 10px"> </td> <td> <asp:dropdownlist id="sourcePriority" runat="server"> <asp:listitem value="Low">Low</asp:listitem> <asp:listitem value="Normal" selected="true">Normal</asp:listitem> <asp:listitem value="High">High</asp:listitem> </asp:dropdownlist> </td> <td> </td> </tr> <tr> <td align="right">Source:</td> <td style="WIDTH: 10px"> </td> <td> <table id="Table2" cellspacing="1" cellpadding="1" width="100%"> <tr> <td style="WIDTH: 100px"> <asp:radiobutton id="useFile" runat="server" text="Use file" width="80px" groupname="textSource" checked="True"></asp:radiobutton> </td> <td style="WIDTH: 11px"> </td> <td> <p align="right">File name:</p> </td> <td> <asp:textbox id="sourceMailFile" runat="server" columns="22">mail.txt</asp:textbox> </td> </tr> <tr> <td style="WIDTH: 100px"> <asp:radiobutton id="useText" runat="server" text="Enter text" width="80px" height="22px" groupname="textSource"></asp:radiobutton> </td> <td style="WIDTH: 11px"> </td> <td> </td> <td> </td> </tr> </table> </td> <td> </td> </tr> <tr> <td align="center" colspan="3"> <asp:textbox id="sourceBodyText" runat="server" columns="51" textmode="MultiLine" rows="15"></asp:textbox> </td> </tr> <tr> <td align="center" colspan="3"> <asp:button id="createEMail" runat="server" text="Create e-mail and display only" onclick="createEMail_Click"></asp:button> <asp:button id="sendEMail" runat="server" text="Create e-mail and send"></asp:button></td> </tr> </table> <p> </p> <p> <asp:placeholder id="PlaceHolder1" runat="server"></asp:placeholder> </p> <p> <asp:literal id="errorMsg" runat="server"></asp:literal></p> </form> </body> </html>


System.Web.UI.WebControls.MailDefinition


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MailDefinition コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


MailDefinition プロパティ

名前 | 説明 | |
---|---|---|
![]() | BodyFileName | 電子メール メッセージの本文のテキストを含むファイルの名前を取得または設定します。 |
![]() | CC | メッセージのコピー (CC) の送信先となる電子メール アドレスのコンマ区切りリストを取得または設定します。 |
![]() | EmbeddedObjects | EmbeddedMailObject インスタンスのコレクションを取得します。これは通常、電子メールをユーザーに送信する前に、MailDefinition オブジェクトにイメージを埋め込む場合に使用されます。 |
![]() | From | メッセージ送信者の電子メール アドレスを取得または設定します。 |
![]() | IsBodyHtml | 電子メールの本文が HTML かどうかを示す値を取得または設定します。 |
![]() | Priority | 電子メールの優先順位を取得または設定します。 |
![]() | Subject | 電子メールの件名を取得または設定します。 |


MailDefinition メソッド

名前 | 説明 | |
---|---|---|
![]() | CreateMailMessage | オーバーロードされます。 SMTP (Simple Mail Transfer Protocol) によって送信される電子メール メッセージを作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Web.UI.IStateManager.LoadViewState | SaveViewState メソッドによって保存された前回のページ要求からビューステート情報を復元します。 |
![]() | System.Web.UI.IStateManager.SaveViewState | ページがサーバーにポスト バックされた時間以降に発生した、サーバー コントロールのビューステートの変更を保存します。 |
![]() | System.Web.UI.IStateManager.TrackViewState | サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。 |

MailDefinition メンバ
コントロールがテキスト ファイルまたは文字列から電子メール メッセージを作成できるようにします。このクラスは継承できません。
MailDefinition データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | BodyFileName | 電子メール メッセージの本文のテキストを含むファイルの名前を取得または設定します。 |
![]() | CC | メッセージのコピー (CC) の送信先となる電子メール アドレスのコンマ区切りリストを取得または設定します。 |
![]() | EmbeddedObjects | EmbeddedMailObject インスタンスのコレクションを取得します。これは通常、電子メールをユーザーに送信する前に、MailDefinition オブジェクトにイメージを埋め込む場合に使用されます。 |
![]() | From | メッセージ送信者の電子メール アドレスを取得または設定します。 |
![]() | IsBodyHtml | 電子メールの本文が HTML かどうかを示す値を取得または設定します。 |
![]() | Priority | 電子メールの優先順位を取得または設定します。 |
![]() | Subject | 電子メールの件名を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | CreateMailMessage | オーバーロードされます。 SMTP (Simple Mail Transfer Protocol) によって送信される電子メール メッセージを作成します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Web.UI.IStateManager.LoadViewState | SaveViewState メソッドによって保存された前回のページ要求からビューステート情報を復元します。 |
![]() | System.Web.UI.IStateManager.SaveViewState | ページがサーバーにポスト バックされた時間以降に発生した、サーバー コントロールのビューステートの変更を保存します。 |
![]() | System.Web.UI.IStateManager.TrackViewState | サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。 |
![]() | System.Web.UI.IStateManager.IsTrackingViewState | サーバー コントロールがビューステートの変更を保存しているかどうかを示す値を取得します。 |

- MailDefinitionのページへのリンク