MailMessage Klasse

Definition

Stellt eine E-Mail dar, die mit der SmtpClient-Klasse gesendet werden kann.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Vererbung
MailMessage
Implementiert

Beispiele

Im folgenden Codebeispiel wird das Erstellen und Senden einer E-Mail-Nachricht veranschaulicht, die eine Anlage enthält.

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

Hinweise

Instanzen der MailMessage -Klasse werden verwendet, um E-Mail-Nachrichten zu erstellen, die zur Übermittlung mithilfe der SmtpClient -Klasse an einen SMTP-Server übertragen werden.

Absender, Empfänger, Betreff und Textkörper einer E-Mail-Nachricht können als Parameter angegeben werden, wenn ein MailMessage zum Initialisieren eines MailMessage Objekts verwendet wird. Auf diese Parameter kann auch mithilfe von Eigenschaften für das MailMessage Objekt zugegriffen werden.

Die Header und Elemente der primären E-Mail-Nachricht für die Nachricht können mithilfe der folgenden Eigenschaften der MailMessage -Klasse festgelegt werden.

E-Mail-Header oder -Teil Eigenschaft
Attachments Attachments
Blinde Carbonkopien (BCC) Bcc
Carbon Copies (CC) CC
Content-Type BodyEncoding
Codierung für benutzerdefinierte Header HeadersEncoding
Nachrichtentext Body
Priorität Priority
Recipient To
Antwort an ReplyToList
Sender From
Subject Subject

Die MailMessage -Klasse ermöglicht einer Anwendung auch den Zugriff auf die Headerauflistung für die Nachricht mithilfe der Headers -Eigenschaft. Obwohl diese Sammlung schreibgeschützt ist (eine neue Auflistung kann nicht festgelegt werden), können benutzerdefinierte Header dieser Auflistung hinzugefügt oder gelöscht werden. Alle hinzugefügten benutzerdefinierten Header werden beim Senden der MailMessage Instanz eingeschlossen. Bevor eine Nachricht gesendet wird, werden nur Header, die speziell zu dieser Auflistung in der Headers -Eigenschaft hinzugefügt wurden, in der Auflistung enthalten. Nachdem eine MailMessage -Instanz gesendet wurde, enthält die Headers -Eigenschaft auch Header, die mithilfe der zugeordneten Eigenschaften der Klasse oder parameter festgelegt werden, die MailMessage übergeben werden, wenn ein MailMessage zum Initialisieren eines MailMessage Objekts verwendet wird.

Wenn einige E-Mail-Header falsch formatiert sind, können sie dazu führen, dass die E-Mail-Nachricht beschädigt wird. Daher sollte jeder E-Mail-Header in der Headerauflistung, der mithilfe einer Eigenschaft für die MailMessage Klasse festgelegt werden kann, nur mit der Klasseneigenschaft oder als Parameter festgelegt werden, der MailMessage übergeben wird, wenn ein MailMessageMailMessage Objekt initialisiert wird. Die folgende Liste von E-Mail-Headern sollte nicht mithilfe der -Eigenschaft hinzugefügt werden, und alle Werte, die Headers für diese Header mit der Headers -Eigenschaft festgelegt werden, werden verworfen oder überschrieben, wenn die Nachricht gesendet wird:

  • Bcc

  • Cc

  • Inhalts-ID

  • Content-Location

  • Content-Transfer-Encoding

  • Content-Type

  • Datum

  • From

  • Wichtigkeit

  • MIME-Version

  • Priorität

  • Antwort an

  • Sender

  • An

  • X-Priorität

Wenn die Anwendung keinen X-Sender-Header mit der Headers -Eigenschaft angibt, erstellt die MailMessage -Klasse einen, wenn die Nachricht gesendet wird.

Verwenden Sie die AlternateViews -Eigenschaft, um Kopien einer E-Mail-Nachricht in verschiedenen Formaten anzugeben. Wenn Sie beispielsweise eine Nachricht in HTML senden, können Sie auch eine Nur-Text-Version bereitstellen, falls einige der Empfänger E-Mail-Reader verwenden, die keine HTML-Inhalte anzeigen können. Ein Beispiel, das das Erstellen einer Nachricht mit alternativen Ansichten veranschaulicht, finden Sie unter AlternateViews.

Verwenden Sie die Attachments -Eigenschaft, um Anlagen zu einer E-Mail-Nachricht hinzuzufügen. Ein Beispiel, das das Erstellen einer Nachricht mit einer Anlage veranschaulicht, finden Sie unter Attachments. Durch Aufrufen von Dispose für die MailMessage wird auch Dispose für jede referenzierte Anlage aufgerufen.

Nachdem Sie Ihre E-Mail-Nachricht zusammengestellt haben, können Sie sie mithilfe der Send -Methode oder SendAsync senden.

Konstruktoren

MailMessage()

Initialisiert eine leere Instanz der MailMessage-Klasse.

MailMessage(MailAddress, MailAddress)

Initialisiert eine neue Instanz der MailMessage-Klasse mithilfe des angegebenen MailAddress-Klassenobjekts.

MailMessage(String, String)

Initialisiert eine neue Instanz der MailMessage-Klasse mithilfe des angegebenen String-Klassenobjekts.

MailMessage(String, String, String, String)

Initialisiert eine neue Instanz der MailMessage-Klasse.

Eigenschaften

AlternateViews

Ruft die Anlagenauflistung ab, die zum Speichern alternativer Formate des Nachrichtentexts verwendet wird.

Attachments

Ruft die Anlagenauflistung ab, die zum Speichern der an diese E-Mail angefügten Daten verwendet wird.

Bcc

Ruft die Adressenauflistung ab, die die BCC-Empfänger für diese E-Mail enthält.

Body

Ruft den Nachrichtentext ab oder legt diesen fest.

BodyEncoding

Ruft die Codierung ab, die zum Codieren des Nachrichtentexts verwendet wird, oder legt diese fest.

BodyTransferEncoding

Übernimmt oder bestimmt die Übertragungscodierung, die zum Codieren des Nachrichtentexts verwendet wird.

CC

Ruft die Adressenauflistung ab, die die CC-Empfänger für diese E-Mail enthält.

DeliveryNotificationOptions

Ruft die Übertragungsbenachrichtigungen für die E-Mail ab oder legt diese fest.

From

Ruft die Absenderadresse für die E-Mail ab oder legt diese fest.

Headers

Ruft die E-Mail-Header ab, die mit dieser E-Mail übertragen werden.

HeadersEncoding

Ruft die für die benutzerdefinierten Header für diese E-Mail verwendete Codierung ab oder legt sie fest.

IsBodyHtml

Ruft einen Wert ab, der angibt, ob der E-Mail-Nachrichtentext im HTML-Format vorliegt, oder legt diesen fest.

Priority

Ruft die Priorität dieser E-Mail ab oder legt sie fest.

ReplyTo
Veraltet.
Veraltet.
Veraltet.

Ruft die ReplyTo-Adresse für die E-Mail-Nachricht ab oder legt diese fest.

ReplyToList

Ruft die Liste der Adressen ab, an die für die E-Mail eine Antwort gesendet werden soll.

Sender

Ruft die Adresse des Absenders für diese E-Mail ab oder legt diese fest.

Subject

Ruft die Betreffzeile für die E-Mail ab oder legt diese fest.

SubjectEncoding

Ruft die für den Inhalt des Betreffs der E-Mail verwendete Codierung ab oder legt diese fest.

To

Ruft die Adressenauflistung ab, die die Empfänger dieser E-Mail enthält.

Methoden

Dispose()

Gibt alle vom MailMessage verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von MailMessage verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: