MailDefinitionとは? わかりやすく解説

MailDefinition クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

コントロールがテキスト ファイルまたは文字列から電子メール メッセージを作成できるようにします。このクラスは継承できません。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

<BindableAttribute(False)> _
Public NotInheritable Class
 MailDefinition
    Implements IStateManager
Dim instance As MailDefinition
[BindableAttribute(false)] 
public sealed class MailDefinition : IStateManager
[BindableAttribute(false)] 
public ref class MailDefinition sealed : IStateManager
/** @attribute BindableAttribute(false) */ 
public final class MailDefinition implements
 IStateManager
BindableAttribute(false) 
public final class MailDefinition implements
 IStateManager
解説解説
使用例使用例

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>&nbsp;<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>&nbsp;</td>
                </tr>
                <tr>
                    <td align="right">From:</td>
                    <td style="WIDTH: 10px">
                    </td>
                    <td>
                        <asp:textbox id="sourceFrom"
 runat="server" columns="54"></asp:textbox>&nbsp;<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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td>
                            </tr>
                            <tr>
                                <td style="WIDTH: 100px">
                                    <asp:radiobutton id="useText"
 runat="server" text="Enter text"
 width="80px" height="22px"
                                        groupname="textSource"></asp:radiobutton>&nbsp;</td>
                                <td style="WIDTH: 11px">
                                </td>
                                <td>
                                </td>
                                <td>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td align="center" colspan="3">
                        <asp:textbox id="sourceBodyText"
 runat="server" columns="51"
 textmode="MultiLine"
                            rows="15"></asp:textbox>&nbsp;</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>&nbsp;</p>
            <p>
                <asp:placeholder id="PlaceHolder1"
 runat="server"></asp:placeholder>&nbsp;</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>&nbsp;<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>&nbsp;</td>
                </tr>
                <tr>
                    <td align="right">From:</td>
                    <td style="WIDTH: 10px">
                    </td>
                    <td>
                        <asp:textbox id="sourceFrom" runat="server"
 columns="54"></asp:textbox>&nbsp;<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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</td>
                            </tr>
                            <tr>
                                <td style="WIDTH: 100px">
                                    <asp:radiobutton id="useText" runat="server"
 text="Enter text" width="80px" height="22px"
                                        groupname="textSource"></asp:radiobutton>&nbsp;</td>
                                <td style="WIDTH: 11px">
                                </td>
                                <td>
                                </td>
                                <td>
                                </td>
                            </tr>
                        </table>
                    </td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td align="center" colspan="3">
                        <asp:textbox id="sourceBodyText" runat="server"
 columns="51" textmode="MultiLine"
                            rows="15"></asp:textbox>&nbsp;</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>&nbsp;</p>
            <p>
                <asp:placeholder id="PlaceHolder1" runat="server"></asp:placeholder>&nbsp;</p>
            <p>
                <asp:literal id="errorMsg" runat="server"></asp:literal></p>
        </form>
    </body>
</html>
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
  System.Web.UI.WebControls.MailDefinition
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MailDefinition メンバ
System.Web.UI.WebControls 名前空間
SmtpClient
MailMessage
EmbeddedMailObject クラス

MailDefinition コンストラクタ


MailDefinition プロパティ


MailDefinition メソッド


パブリック メソッドパブリック メソッド

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

関連項目

MailDefinition クラス
System.Web.UI.WebControls 名前空間
SmtpClient
MailMessage
EmbeddedMailObject クラス

MailDefinition メンバ

コントロールがテキスト ファイルまたは文字列から電子メール メッセージを作成できるようにします。このクラスは継承できません。

MailDefinition データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド MailDefinition MailDefinition クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.Web.UI.IStateManager.LoadViewState SaveViewState メソッドによって保存された前回のページ要求からビューステート情報を復元します。
インターフェイスの明示的な実装 System.Web.UI.IStateManager.SaveViewState ページがサーバーにポスト バックされた時間以降に発生した、サーバー コントロールのビューステートの変更を保存します。
インターフェイスの明示的な実装 System.Web.UI.IStateManager.TrackViewState サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。
インターフェイスの明示的な実装 System.Web.UI.IStateManager.IsTrackingViewState サーバー コントロールがビューステートの変更を保存しているかどうかを示す値を取得します。
参照参照

関連項目

MailDefinition クラス
System.Web.UI.WebControls 名前空間
SmtpClient
MailMessage
EmbeddedMailObject クラス



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「MailDefinition」の関連用語

MailDefinitionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MailDefinitionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS