Partager via


MailMessage Classe

Définition

Représente un e-mail qui peut être envoyé à l’aide de la classe SmtpClient.

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 e-mail contenant une pièce jointe.

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 = L"data.xls";
   
   // Create a message and set up the recipients.
   MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"Quarterly data report.",L"See the attached spreadsheet." );
   
   // Create  the file attachment for this email message.
   Attachment^ data = gcnew 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 = gcnew SmtpClient( server );
   
   // Add credentials if the SMTP server requires them.
   client->Credentials = CredentialCache::DefaultNetworkCredentials;
   client->Send( message );
   
   // Display the values in the ContentDisposition for the attachment.
   ContentDisposition^ cd = data->ContentDisposition;
   Console::WriteLine( L"Content disposition" );
   Console::WriteLine( cd );
   Console::WriteLine( L"File {0}", cd->FileName );
   Console::WriteLine( L"Size {0}", cd->Size );
   Console::WriteLine( L"Creation {0}", cd->CreationDate );
   Console::WriteLine( L"Modification {0}", cd->ModificationDate );
   Console::WriteLine( L"Read {0}", cd->ReadDate );
   Console::WriteLine( L"Inline {0}", cd->Inline );
   Console::WriteLine( L"Parameters: {0}", cd->Parameters->Count );
   IEnumerator^ myEnum1 = cd->Parameters->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      DictionaryEntry^ d = safe_cast<DictionaryEntry^>(myEnum1->Current);
      Console::WriteLine( L"{0} = {1}", d->Key, d->Value );
   }

   data->~Attachment();
   client->~SmtpClient();
}
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 qui sont transmis à un serveur SMTP pour 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 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 composant de courrier Propriété
Pièces jointes Attachments
Copies carbone aveugles (BCC) Bcc
Copies carbone (CC) CC
Content-Type BodyEncoding
Encodage pour les en-têtes personnalisés HeadersEncoding
Corps du message Body
Priorité Priority
Recipient To
Répondre à ReplyToList
Expéditeur From
Objet Subject

La MailMessage classe permet également à une application d’accéder à la collection d’en-têtes pour le 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), des en-têtes personnalisés peuvent être ajoutés ou supprimés de cette collection. Tous les en-têtes personnalisés ajoutés sont inclus lors de l’envoi de la MailMessage instance. Avant l’envoi d’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 le MailMessage instance envoyé, 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 est utilisé pour initialiser un MailMessage objet.

Si certains en-têtes de courrier sont mal formés, ils peuvent endommager le message électronique. Par conséquent, tout en-tête de courrier 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é lors de l’initialisation d’un MailMessageMailMessage 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 lors de l’envoi du message :

  • Cci

  • Cc

  • Content-ID

  • Content-Location

  • Encodage de transfert de contenu

  • Content-Type

  • Date

  • À partir

  • Importance

  • MIME-Version

  • Priorité

  • 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 un 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 destinataires utilisent des lecteurs de courrier qui ne peuvent pas afficher de contenu HTML. Pour obtenir un exemple illustrant la création d’un message avec d’autres vues, consultez AlternateViews.

Utilisez la Attachments propriété pour ajouter des pièces jointes à un e-mail. 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 message électronique, vous pouvez l’envoyer à l’aide des Send méthodes ou SendAsync .

Constructeurs

MailMessage()

Initialise une instance vide de la classe MailMessage.

MailMessage(MailAddress, MailAddress)

Initialise une nouvelle instance de la classe MailMessage en utilisant les objets de classe MailAddress spécifiés.

MailMessage(String, String)

Initialise une nouvelle instance de la classe MailMessage en utilisant les objets de classe String spécifiés.

MailMessage(String, String, String, String)

Initialise une nouvelle instance de la classe MailMessage.

Propriétés

AlternateViews

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

Attachments

Obtient la collection de pièces jointes utilisée pour stocker les données jointes à cet e-mail.

Bcc

Obtient la collection d’adresses qui contient les destinataires de copie carbone invisible (CCI) pour cet e-mail.

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 cet e-mail.

DeliveryNotificationOptions

Obtient ou définit les notifications de remise de cet e-mail.

From

Obtient ou définit l’adresse de l’expéditeur de cet e-mail.

Headers

Obtient les en-têtes d’e-mails qui sont transmis avec cet e-mail.

HeadersEncoding

Obtient ou définit l’encodage utilisé pour les en-têtes personnalisés définis par l’utilisateur de cet e-mail.

IsBodyHtml

Obtient ou définit une valeur indiquant si le corps de l’e-mail est au format HTML.

Priority

Obtient ou définit la priorité de cet e-mail.

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 une réponse à l’e-mail doit être envoyée.

Sender

Obtient ou définit l’adresse de l’expéditeur de cet e-mail.

Subject

Obtient ou définit la ligne d’objet de cet e-mail.

SubjectEncoding

Obtient ou définit l’encodage utilisé pour le contenu de l’objet de cet e-mail.

To

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

Méthodes

Dispose()

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

Dispose(Boolean)

Libère les ressources non managées utilisées par MailMessage 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()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

S’applique à