Partager via


MailMessage Classe

Définition

Représente un message électronique qui peut être envoyé à l’aide de la SmtpClient classe.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Héritage
MailMessage
Implémente

Exemples

L’exemple de code suivant illustre la création et l’envoi d’un message électronique incluant une pièce jointe.

public static void CreateMessageWithAttachment(string server)
{
    // Specify the file to be attached and sent.
    // This example assumes that a file named Data.xls exists in the
    // current working directory.
    string file = "data.xls";
    // Create a message and set up the recipients.
    MailMessage message = new MailMessage(
        "jane@contoso.com",
        "ben@contoso.com",
        "Quarterly data report.",
        "See the attached spreadsheet.");

    // Create  the file attachment for this email message.
    Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
    // Add time stamp information for the file.
    ContentDisposition disposition = data.ContentDisposition;
    disposition.CreationDate = System.IO.File.GetCreationTime(file);
    disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
    disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
    // Add the file attachment to this email message.
    message.Attachments.Add(data);

    //Send the message.
    SmtpClient client = new SmtpClient(server);
    // Add credentials if the SMTP server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
            ex.ToString());
    }
    // Display the values in the ContentDisposition for the attachment.
    ContentDisposition cd = data.ContentDisposition;
    Console.WriteLine("Content disposition");
    Console.WriteLine(cd.ToString());
    Console.WriteLine("File {0}", cd.FileName);
    Console.WriteLine("Size {0}", cd.Size);
    Console.WriteLine("Creation {0}", cd.CreationDate);
    Console.WriteLine("Modification {0}", cd.ModificationDate);
    Console.WriteLine("Read {0}", cd.ReadDate);
    Console.WriteLine("Inline {0}", cd.Inline);
    Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
    foreach (DictionaryEntry d in cd.Parameters)
    {
        Console.WriteLine("{0} = {1}", d.Key, d.Value);
    }
    data.Dispose();
}
Public Shared Sub CreateMessageWithAttachment(ByVal server As String)
    ' Specify the file to be attached And sent.
    ' This example assumes that a file named Data.xls exists in the
    ' current working directory.
    Dim file As String = "data.xls"
    ' Create a message and set up the recipients.
    Dim message As MailMessage = New MailMessage(
        "jane@contoso.com",
        "ben@contoso.com",
        "Quarterly data report.",
        "See the attached spreadsheet.")

    ' Create  the file attachment for this email message.
    Dim data As Attachment = New Attachment(file, MediaTypeNames.Application.Octet)
    ' Add time stamp information for the file.
    Dim disposition As ContentDisposition = data.ContentDisposition
    disposition.CreationDate = System.IO.File.GetCreationTime(file)
    disposition.ModificationDate = System.IO.File.GetLastWriteTime(file)
    disposition.ReadDate = System.IO.File.GetLastAccessTime(file)
    ' Add the file attachment to this email message.
    message.Attachments.Add(data)

    ' Send the message
    Dim client As SmtpClient = New SmtpClient(server)
    ' Add credentials if the SMTP server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials

    Try
        client.Send(message)
    Catch ex As Exception
        Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", ex.ToString())
    End Try

    ' Display the values in the ContentDisposition for the attachment.
    Dim cd As ContentDisposition = data.ContentDisposition
    Console.WriteLine("Content disposition")
    Console.WriteLine(cd.ToString())
    Console.WriteLine("File {0}", cd.FileName)
    Console.WriteLine("Size {0}", cd.Size)
    Console.WriteLine("Creation {0}", cd.CreationDate)
    Console.WriteLine("Modification {0}", cd.ModificationDate)
    Console.WriteLine("Read {0}", cd.ReadDate)
    Console.WriteLine("Inline {0}", cd.Inline)
    Console.WriteLine("Parameters: {0}", cd.Parameters.Count)

    For Each d As DictionaryEntry In cd.Parameters
        Console.WriteLine("{0} = {1}", d.Key, d.Value)
    Next

    data.Dispose()
End Sub

Remarques

Les instances de la MailMessage classe sont utilisées pour construire des messages électroniques transmis à un serveur SMTP pour la remise à l’aide de la SmtpClient classe.

L’expéditeur, le destinataire, l’objet et le corps d’un message électronique peuvent être spécifiés en tant que paramètres lorsqu’un MailMessage objet est utilisé pour initialiser un MailMessage objet. Ces paramètres peuvent également être définis ou accessibles à l’aide de propriétés sur l’objet MailMessage .

Les en-têtes et éléments de message de messagerie principaux pour le message peuvent être définis à l’aide des propriétés suivantes de la MailMessage classe.

En-tête ou partie de courrier Propriété
Attachments Attachments
Copies en carbone aveugles (CCI) Bcc
Copies carbone (CC) CC
Type de contenu BodyEncoding
Encodage pour les en-têtes personnalisés HeadersEncoding
Corps du message Body
Priority Priority
Recipient To
Répondre à ReplyToList
Expéditeur From
Sujet Subject

La MailMessage classe permet également à une application d’accéder à la collection d’en-têtes du message à l’aide de la Headers propriété. Bien que cette collection soit en lecture seule (une nouvelle collection ne peut pas être définie), les en-têtes personnalisés peuvent être ajoutés ou supprimés de cette collection. Tous les en-têtes personnalisés ajoutés seront inclus lors de l’envoi de l’instance MailMessage . Avant d’envoyer un message, seuls les en-têtes spécifiquement ajoutés à cette collection dans la Headers propriété sont inclus dans la collection. Une fois l’instance MailMessage envoyée, la Headers propriété inclut également des en-têtes définis à l’aide des propriétés associées de la MailMessage classe ou des paramètres passés lorsqu’un MailMessage objet est utilisé pour initialiser un MailMessage objet.

Si certains en-têtes de courrier sont mal formés, ils peuvent provoquer l’endommagement du message électronique. Par conséquent, tout en-tête de messagerie dans la collection d’en-têtes qui peut être défini à l’aide d’une propriété sur la MailMessage classe ne doit être défini qu’à l’aide de la MailMessage propriété de classe ou en tant que paramètre passé lorsqu’un MailMessage objet initialise un MailMessage objet. La liste suivante d’en-têtes de courrier ne doit pas être ajoutée à l’aide de la Headers propriété et toutes les valeurs définies pour ces en-têtes à l’aide de la Headers propriété seront ignorées ou remplacées lorsque le message est envoyé :

  • Bcc
  • Cc
  • CONTENT-ID
  • Emplacement du contenu
  • Contenu -Transfer-Encoding
  • Type de contenu
  • Date
  • De
  • Importance
  • MIME-Version
  • Priority
  • Répondre à
  • Expéditeur
  • À
  • Priorité X

Si l’application ne spécifie pas d’en-tête X-Sender à l’aide de la Headers propriété, la MailMessage classe en crée une lorsque le message est envoyé.

Utilisez la AlternateViews propriété pour spécifier des copies d’un message électronique dans différents formats. Par exemple, si vous envoyez un message au format HTML, vous pouvez également fournir une version en texte brut si certains des destinataires utilisent des lecteurs de courrier qui ne peuvent pas afficher le contenu HTML. Pour obtenir un exemple illustrant la création d’un message avec d’autres affichages, consultez AlternateViews.

Utilisez la Attachments propriété pour ajouter des pièces jointes à un message électronique. Pour obtenir un exemple illustrant la création d’un message avec une pièce jointe, consultez Attachments. L’appel de Dispose sur MailMessage appelle également Dispose sur chaque pièce jointe référencée.

Après avoir assemblé votre e-mail, vous pouvez l’envoyer à l’aide des méthodes ou SendAsync des Send méthodes.

Constructeurs

Nom Description
MailMessage()

Initialise une instance vide de la MailMessage classe.

MailMessage(MailAddress, MailAddress)

Initialise une nouvelle instance de la MailMessage classe à l’aide des objets de classe spécifiés MailAddress .

MailMessage(String, String, String, String)

Initialise une nouvelle instance de la classe MailMessage.

MailMessage(String, String)

Initialise une nouvelle instance de la MailMessage classe à l’aide des objets de classe spécifiés String .

Propriétés

Nom Description
AlternateViews

Obtient la collection de pièces jointes utilisée pour stocker d’autres formes du corps du message.

Attachments

Obtient la collection de pièces jointes utilisée pour stocker les données attachées à ce message électronique.

Bcc

Obtient la collection d’adresses qui contient les destinataires de copie carbone aveugle (CCI) pour ce message électronique.

Body

Obtient ou définit le corps du message.

BodyEncoding

Obtient ou définit l’encodage utilisé pour encoder le corps du message.

BodyTransferEncoding

Obtient ou définit l’encodage de transfert utilisé pour encoder le corps du message.

CC

Obtient la collection d’adresses qui contient les destinataires de copie carbone (CC) pour ce message électronique.

DeliveryNotificationOptions

Obtient ou définit les notifications de remise pour ce message électronique.

From

Obtient ou définit l’adresse de l’adresse de ce message électronique.

Headers

Obtient les en-têtes d’e-mail transmis avec ce message électronique.

HeadersEncoding

Obtient ou définit l’encodage utilisé pour les en-têtes personnalisés définis par l’utilisateur pour ce message électronique.

IsBodyHtml

Obtient ou définit une valeur indiquant si le corps du message électronique est au format HTML.

Priority

Obtient ou définit la priorité de ce message électronique.

ReplyTo
Obsolète.
Obsolète.
Obsolète.

Obtient ou définit l’adresse ReplyTo pour le message électronique.

ReplyToList

Obtient la liste des adresses auxquelles répondre pour le message électronique.

Sender

Obtient ou définit l’adresse de l’expéditeur pour ce message électronique.

Subject

Obtient ou définit la ligne d’objet de ce message électronique.

SubjectEncoding

Obtient ou définit l’encodage utilisé pour le contenu de l’objet pour ce message électronique.

To

Obtient la collection d’adresses qui contient les destinataires de cet e-mail.

Méthodes

Nom Description
Dispose()

Libère toutes les ressources utilisées par le MailMessage.

Dispose(Boolean)

Libère les ressources non managées utilisées par les MailMessage ressources gérées et libère éventuellement les ressources managées.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à