MailMessage Klasa

Definicja

Reprezentuje wiadomość e-mail, którą można wysłać przy użyciu SmtpClient klasy .

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Dziedziczenie
MailMessage
Implementuje

Przykłady

Poniższy przykład kodu przedstawia tworzenie i wysyłanie wiadomości e-mail zawierającej załącznik.

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

Uwagi

MailMessage Wystąpienia klasy służą do konstruowania wiadomości e-mail przesyłanych do serwera SMTP na potrzeby dostarczania przy użyciu SmtpClient klasy .

Nadawca, adresat, temat i treść wiadomości e-mail mogą być określone jako parametry, gdy MailMessage element jest używany do inicjowania MailMessage obiektu. Te parametry można również ustawić lub uzyskać do nich dostęp przy użyciu właściwości obiektu MailMessage .

Podstawowe nagłówki i elementy wiadomości e-mail dla wiadomości mogą być ustawione przy użyciu następujących właściwości MailMessage klasy.

Nagłówek lub część poczty Właściwość
Załączniki Attachments
Ślepe kopie węglowe (BCC) Bcc
Kopie węglowe (CC) CC
Content-Type BodyEncoding
Kodowanie dla nagłówków niestandardowych HeadersEncoding
Treść wiadomości Body
Priorytet Priority
Adresat To
Reply-To ReplyToList
Nadawca From
Temat Subject

Klasa MailMessage umożliwia również aplikacji dostęp do kolekcji nagłówków dla komunikatu Headers przy użyciu właściwości . Chociaż ta kolekcja jest tylko do odczytu (nie można ustawić nowej kolekcji), nagłówki niestandardowe można dodawać do tej kolekcji lub usuwać z tej kolekcji. Wszystkie dodane nagłówki niestandardowe będą uwzględniane podczas wysyłania MailMessage wystąpienia. Przed wysłaniem wiadomości tylko nagłówki specjalnie dodane do tej kolekcji we Headers właściwości są uwzględniane w kolekcji. Po wysłaniu MailMessage wystąpienia właściwość będzie również zawierać nagłówki ustawione przy użyciu skojarzonych właściwości MailMessage klasy lub parametrów przekazywanych, Headers gdy MailMessage obiekt jest używany do inicjowania MailMessage obiektu.

Jeśli niektóre nagłówki poczty są źle sformułowane, mogą spowodować uszkodzenie wiadomości e-mail. Dlatego każdy nagłówek poczty w kolekcji nagłówków, który można ustawić przy użyciu właściwości w MailMessage klasie, należy ustawić tylko przy użyciu MailMessage właściwości klasy lub jako parametr przekazywany podczas MailMessage inicjowania MailMessage obiektu. Następującej listy nagłówków poczty nie należy dodawać przy użyciu Headers właściwości , a wszystkie wartości ustawione dla tych nagłówków przy użyciu Headers właściwości zostaną odrzucone lub zastąpione po wysłaniu wiadomości:

  • Udw

  • DW

  • Identyfikator zawartości

  • Lokalizacja zawartości

  • Kodowanie transferu zawartości

  • Content-Type

  • Data

  • Źródło

  • Ważność

  • MIME-Version

  • Priorytet

  • Reply-To

  • Nadawca

  • Działanie

  • Priorytet X

Jeśli aplikacja nie określi nagłówka X-Sender przy użyciu Headers właściwości , MailMessage klasa utworzy go po wysłaniu komunikatu.

AlternateViews Użyj właściwości , aby określić kopie wiadomości e-mail w różnych formatach. Jeśli na przykład wyślesz wiadomość w kodzie HTML, możesz również podać wersję zwykłego tekstu, jeśli niektórzy adresaci używają czytników wiadomości e-mail, które nie mogą wyświetlać zawartości HTML. Aby zapoznać się z przykładem tworzenia komunikatu z widokami alternatywnymi, zobacz AlternateViews.

Attachments Użyj właściwości , aby dodać załączniki do wiadomości e-mail. Aby zapoznać się z przykładem tworzenia wiadomości z załącznikiem, zobacz Attachments. Wywołanie metody Dispose w mailMessage wywołuje również metodę Dispose dla każdego załącznika, do których odwołuje się odwołanie.

Po zebraniu wiadomości e-mail możesz wysłać ją przy użyciu Send metod lub SendAsync .

Konstruktory

MailMessage()

Inicjuje MailMessage puste wystąpienie klasy.

MailMessage(MailAddress, MailAddress)

Inicjuje MailMessage nowe wystąpienie klasy przy użyciu określonych MailAddress obiektów klasy.

MailMessage(String, String)

Inicjuje MailMessage nowe wystąpienie klasy przy użyciu określonych String obiektów klasy.

MailMessage(String, String, String, String)

Inicjuje nowe wystąpienie klasy MailMessage.

Właściwości

AlternateViews

Pobiera kolekcję załączników używaną do przechowywania alternatywnych formularzy treści wiadomości.

Attachments

Pobiera kolekcję załączników używaną do przechowywania danych dołączonych do tej wiadomości e-mail.

Bcc

Pobiera kolekcję adresów zawierającą niewidomych adresatów kopii dwutlenku węgla (BCC) dla tej wiadomości e-mail.

Body

Pobiera lub ustawia treść komunikatu.

BodyEncoding

Pobiera lub ustawia kodowanie używane do kodowania treści komunikatu.

BodyTransferEncoding

Pobiera lub ustawia kodowanie transferu używane do kodowania treści komunikatu.

CC

Pobiera kolekcję adresów zawierającą adresatów kopii węgla (CC) dla tej wiadomości e-mail.

DeliveryNotificationOptions

Pobiera lub ustawia powiadomienia o dostawie dla tej wiadomości e-mail.

From

Pobiera lub ustawia adres z adresu dla tej wiadomości e-mail.

Headers

Pobiera nagłówki wiadomości e-mail przesyłane za pomocą tej wiadomości e-mail.

HeadersEncoding

Pobiera lub ustawia kodowanie używane dla nagłówków niestandardowych zdefiniowanych przez użytkownika dla tej wiadomości e-mail.

IsBodyHtml

Pobiera lub ustawia wartość wskazującą, czy treść wiadomości e-mail znajduje się w kodzie HTML.

Priority

Pobiera lub ustawia priorytet tej wiadomości e-mail.

ReplyTo
Nieaktualne.
Nieaktualne.
Nieaktualne.
Nieaktualne.

Pobiera lub ustawia adres ReplyTo dla wiadomości e-mail.

ReplyToList

Pobiera listę adresów do odpowiedzi na wiadomość e-mail.

Sender

Pobiera lub ustawia adres nadawcy dla tej wiadomości e-mail.

Subject

Pobiera lub ustawia wiersz tematu dla tej wiadomości e-mail.

SubjectEncoding

Pobiera lub ustawia kodowanie używane dla zawartości tematu dla tej wiadomości e-mail.

To

Pobiera kolekcję adresów zawierającą adresatów tej wiadomości e-mail.

Metody

Dispose()

Zwalnia wszelkie zasoby używane przez element MailMessage.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element MailMessage i opcjonalnie zwalnia zasoby zarządzane.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy