Freigeben über


MailMessage Klasse

Definition

Stellt eine E-Mail-Nachricht dar, die mithilfe 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

Das folgende Codebeispiel veranschaulicht das Erstellen und Senden einer E-Mail-Nachricht, die eine Anlage enthält.

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 Klasse werden verwendet, um E-Mail-Nachrichten zu erstellen, die mithilfe der MailMessageSmtpClient Klasse an einen SMTP-Server übertragen werden.

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

Die primären Nachrichtenkopfzeilen und -elemente für die Nachricht können mithilfe der folgenden Eigenschaften der MailMessage Klasse festgelegt werden.

E-Mail-Kopfzeile oder -teil Eigentum
Attachments Attachments
Blindkopien (BCC) Bcc
Kopien (CC) CC
Inhaltstyp BodyEncoding
Codierung für benutzerdefinierte Kopfzeilen HeadersEncoding
Nachrichtentext Body
Priorität Priority
Recipient To
Antwort an ReplyToList
Absender From
Betreff Subject

Die MailMessage Klasse ermöglicht einer Anwendung auch den Zugriff auf die Headerauflistung für die Nachricht mithilfe der Headers Eigenschaft. Diese Auflistung ist zwar schreibgeschützt (eine neue Auflistung kann nicht festgelegt werden), aber benutzerdefinierte Kopfzeilen können dieser Auflistung hinzugefügt oder daraus gelöscht werden. Alle hinzugefügten benutzerdefinierten Header werden einbezogen, wenn die MailMessage Instanz gesendet wird. Bevor eine Nachricht gesendet wird, werden nur Kopfzeilen, die dieser Auflistung in der Eigenschaft spezifisch hinzugefügt werden, in der Headers Auflistung enthalten. Nachdem eine MailMessage Instanz gesendet wurde, enthält die Headers Eigenschaft auch Kopfzeilen, die mithilfe der zugeordneten Eigenschaften der MailMessage Klasse oder parameter festgelegt werden, die übergeben werden, wenn ein MailMessageMailMessage Objekt initialisiert wird.

Wenn einige E-Mail-Kopfzeilen fehlerhaft sind, können sie dazu führen, dass die E-Mail-Nachricht beschädigt wird. Daher sollte jede E-Mail-Kopfzeile in der Headerauflistung, die mithilfe einer Eigenschaft für die MailMessage Klasse festgelegt werden kann, nur mithilfe der MailMessage Klasseneigenschaft oder als Parameter festgelegt werden, der beim Initialisieren eines MailMessageMailMessage Objekts übergeben wird. Die folgende Liste der E-Mail-Kopfzeilen sollte nicht mithilfe der Eigenschaft hinzugefügt werden, und alle Werte, die Headers für diese Kopfzeilen mit der Headers Eigenschaft festgelegt sind, werden verworfen oder überschrieben, wenn die Nachricht gesendet wird:

  • Bcc
  • Cc
  • Inhalts-ID
  • Inhaltsspeicherort
  • Inhalt–Transfer-Encoding
  • Inhaltstyp
  • Datum
  • Von
  • Wichtigkeit
  • MIME-Version
  • Priorität
  • Antwort an
  • Absender
  • To
  • X-Priorität

Wenn die Anwendung keinen X-Sender-Header mit der Headers Eigenschaft angibt, erstellt die MailMessage Klasse eine, 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 Empfänger E-Mail-Leser verwenden, die HTML-Inhalte nicht anzeigen können. Ein Beispiel zum Erstellen einer Nachricht mit alternativen Ansichten finden Sie unter AlternateViews.

Verwenden Sie die Attachments Eigenschaft, um einer E-Mail-Nachricht Anlagen 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 mit den Send Methoden oder SendAsync Methoden senden.

Konstruktoren

Name Beschreibung
MailMessage()

Initialisiert eine leere Instanz der MailMessage Klasse.

MailMessage(MailAddress, MailAddress)

Initialisiert eine neue Instanz der Klasse mithilfe der MailMessage angegebenen MailAddress Klassenobjekte.

MailMessage(String, String, String, String)

Initialisiert eine neue Instanz der MailMessage-Klasse.

MailMessage(String, String)

Initialisiert eine neue Instanz der Klasse mithilfe der MailMessage angegebenen String Klassenobjekte.

Eigenschaften

Name Beschreibung
AlternateViews

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

Attachments

Ruft die Anlagenauflistung ab, die zum Speichern von Daten verwendet wird, die an diese E-Mail-Nachricht angefügt sind.

Bcc

Ruft die Adressauflistung ab, die die BCC-Empfänger (Blind Carbon Copy) für diese E-Mail-Nachricht enthält.

Body

Ruft den Nachrichtentext ab oder legt den Nachrichtentext fest.

BodyEncoding

Dient zum Abrufen oder Festlegen der Codierung, die zum Codieren des Nachrichtentexts verwendet wird.

BodyTransferEncoding

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

CC

Ruft die Adressauflistung ab, die die Empfänger der Kopie (CC) für diese E-Mail-Nachricht enthält.

DeliveryNotificationOptions

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

From

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

Headers

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

HeadersEncoding

Dient zum Abrufen oder Festlegen der Codierung, die für die benutzerdefinierten Kopfzeilen für diese E-Mail-Nachricht verwendet wird.

IsBodyHtml

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob sich der Nachrichtentext in HTML befindet.

Priority

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

ReplyTo
Veraltet.
Veraltet.
Veraltet.

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

ReplyToList

Ruft die Liste der Adressen ab, auf die für die E-Mail-Nachricht zu antworten ist.

Sender

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

Subject

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

SubjectEncoding

Dient zum Abrufen oder Festlegen der Codierung, die für den Betreffinhalt für diese E-Mail-Nachricht verwendet wird.

To

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

Methoden

Name Beschreibung
Dispose()

Veröffentlicht alle ressourcen, die von der MailMessage.

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den MailMessage verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Gilt für: