Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

MailDefinition, classe

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.

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

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web (dans System.Web.dll)
[BindableAttribute(false)]
public sealed class MailDefinition : IStateManager

Le type MailDefinition expose les membres suivants.

  NomDescription
Méthode publiqueMailDefinitionInitialise une nouvelle instance de la classe MailDefinition.
Début
  NomDescription
Propriété publiqueBodyFileNameObtient ou définit le nom du fichier qui contient le texte pour le corps du message électronique.
Propriété publiqueCCObtient ou définit une liste d'adresses de messagerie séparées par une virgule pour envoyer une copie (CC) du message.
Propriété publiqueEmbeddedObjectsObtient une collection d'instances de EmbeddedMailObject, généralement utilisée pour incorporer des images dans un objet MailDefinition avant d'envoyer un message électronique à un utilisateur.
Propriété publiqueFromObtient ou définit l'adresse de messagerie de l'expéditeur du message.
Propriété publiqueIsBodyHtmlObtient ou définit une valeur indiquant si le corps du message électronique est au format HTML.
Propriété publiquePriorityObtient ou définit la priorité du message électronique.
Propriété publiqueSubjectObtient ou définit la ligne de l'objet du message électronique.
Début
  NomDescription
Méthode publiqueCreateMailMessage(String, IDictionary, Control)Crée un message électronique à partir d'un fichier texte à envoyer au moyen du protocole SMTP (Simple Mail Transfer Protocol).
Méthode publiqueCreateMailMessage(String, IDictionary, String, Control)Crée un message électronique avec les remplacements provenant d'un fichier texte à envoyer au moyen du protocole SMTP (Simple Mail Transfer Protocol).
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début
  NomDescription
Implémentation d'interface explicitePropriété privéeIStateManager.IsTrackingViewStateObtient une valeur qui indique si le contrôle serveur enregistre les modifications apportées à son état d'affichage.
Implémentation d'interface expliciteMéthode privéeIStateManager.LoadViewStateRestaure les informations d'état d'affichage à partir d'une demande de page antérieure enregistrée par la méthode SaveViewState.
Implémentation d'interface expliciteMéthode privéeIStateManager.SaveViewStateEnregistre les modifications éventuellement apportées à l'état d'affichage du contrôle serveur depuis la publication de la page sur le serveur.
Implémentation d'interface expliciteMéthode privéeIStateManager.TrackViewStateProvoque le suivi des modifications de l'état d'affichage pour le contrôle serveur afin qu'elles puissent être stockées dans l'objet StateBag du contrôle serveur.
Début

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).

RemarqueRemarque

La classe MailDefinition ne prend pas en charge la liaison aux données. Les propriétés de la classe MailDefinition ne peuvent pas être liées aux données à l'aide de la syntaxe d'expression de liaison aux données <%#   %>.

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.

Note de sécuritéNote de sécurité

Ce contrôle a une zone de texte qui accepte l'entrée d'utilisateur, ce qui constitue une menace éventuelle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Script Exploits Overview.


<%@ page language="C#"%>
<%@ import namespace="System.Net.Mail"%>
<%@ import namespace="System.Reflection"%>
<%@ import namespace="System.Collections.Specialized"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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 xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Create an e-mail message</title>
</head>
<body>
        <form id="Form1" runat="server">
            <table id="Table1" cellspacing="1" 
                style="padding:1; width:450px; text-align:center">
                <tr>
                    <td align="center" colspan="3">
                        <h3>Create an e-mail message</h3>
                    </td>
                </tr>
                <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>
                    <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 style="text-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

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.