Exporter (0) Imprimer
Développer tout

MailDefinition, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Permet à un contrôle de créer des messages électroniques à partir de fichiers texte ou de chaînes. Cette classe ne peut pas être héritée.

Espace de noms : System.Web.UI.WebControls
Assembly : System.Web (dans system.web.dll)

[BindableAttribute(false)] 
public sealed class MailDefinition : IStateManager
/** @attribute BindableAttribute(false) */ 
public final class MailDefinition implements IStateManager
BindableAttribute(false) 
public final class MailDefinition implements IStateManager

La classe MailDefinition peut être utilisée par des contrôles pour créer un objet MailMessage à partir d'un fichier texte ou d'une chaîne qui contient le corps du message électronique. Utilisez la classe MailDefinition pour simplifier la création des messages électroniques prédéfinis à envoyer par un contrôle. Si vous souhaitez envoyer un message électronique sans utiliser de contrôle, consultez la classe System.Net.Mail.

Vous pouvez faire des substitutions de texte dans le corps du message électronique en passant à la méthode CreateMailMessage une instance de IDictionary qui mappe des chaînes à leurs remplacements.

L'objet MailMessage créé par la classe MailDefinition est envoyé à l'aide de la méthode Send de la classe SmtpClient. Pour pouvoir envoyer un message électronique, vous devez configurer un serveur de messagerie SMTP dans votre fichier Web.config. Pour plus d'informations, consultez smtp, élément (paramètres réseau).

L'exemple de code suivant crée un message électronique Internet à partir d'une page Web Forms. Vous pouvez soit entrer le texte du message dans le formulaire, soit entrer le nom d'un fichier texte à utiliser comme corps du message. Le code définit deux remplacements de chaîne pour le message : la liste des destinataires à partir de la zone de texte À du formulaire remplacera la chaîne "<%À%>" et le texte spécifié dans la propriété From remplacera la chaîne "<%De%>".

Sur la page Web Forms générée par ce code, vous pouvez cliquer sur Créer un message et afficher uniquement pour créer un message électronique et afficher les propriétés de l'objet MailMessage dans la page Web. Cliquez sur Créer un message et envoyer pour afficher le message électronique dans la page Web et envoyer le message aux destinataires à l'aide de la messagerie électronique Internet.

<%@ 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>

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
  System.Web.UI.WebControls.MailDefinition

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft