Condividi tramite


MailMessage Classe

Definizione

Rappresenta un messaggio di posta elettronica che può essere inviato mediante la classe SmtpClient.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Ereditarietà
MailMessage
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrata la creazione e l'invio di un messaggio di posta elettronica che include un allegato.

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

Commenti

Le istanze della MailMessage classe vengono usate per costruire messaggi di posta elettronica trasmessi a un server SMTP per il recapito tramite la SmtpClient classe .

Il mittente, il destinatario, l'oggetto e il corpo di un messaggio di posta elettronica possono essere specificati come parametri quando un MailMessage oggetto viene usato per inizializzare un MailMessage oggetto. È anche possibile impostare o accedere a questi parametri usando le proprietà dell'oggetto MailMessage .

Le intestazioni e gli elementi del messaggio di posta elettronica primari per il messaggio possono essere impostati utilizzando le proprietà seguenti della MailMessage classe .

Intestazione o parte di posta elettronica Proprietà
Allegati Attachments
Copie in carbonio cieco (BCC) Bcc
Copie in carbonio (CC) CC
Content-Type BodyEncoding
Codifica per intestazioni personalizzate HeadersEncoding
Corpo del messaggio Body
Priorità Priority
Recipient To
Reply-To ReplyToList
Mittente From
Subject Subject

La MailMessage classe consente anche a un'applicazione di accedere all'insieme di intestazioni per il messaggio usando la Headers proprietà . Anche se questa raccolta è di sola lettura (non è possibile impostare una nuova raccolta), è possibile aggiungere o eliminare intestazioni personalizzate da questa raccolta. Tutte le intestazioni personalizzate aggiunte verranno incluse quando l'istanza MailMessage viene inviata. Prima dell'invio di un messaggio, nell'insieme Headers vengono incluse solo le intestazioni aggiunte in modo specifico a questa raccolta. Dopo l'invio di un'istanza MailMessage , la Headers proprietà includerà anche le intestazioni impostate utilizzando le proprietà associate della MailMessage classe o dei parametri passati quando viene utilizzato un MailMessage oggetto per inizializzare un MailMessage oggetto .

Se alcune intestazioni di posta sono in formato non valido, potrebbero causare il danneggiamento del messaggio di posta elettronica. Pertanto, qualsiasi intestazione di posta nell'insieme di intestazioni che può essere impostata utilizzando una proprietà nella MailMessage classe deve essere impostata solo usando la MailMessage proprietà della classe o come parametro passato quando un MailMessage oggetto inizializza un MailMessage oggetto . L'elenco seguente di intestazioni di posta elettronica non deve essere aggiunto utilizzando la Headers proprietà e tutti i valori impostati per queste intestazioni utilizzando la Headers proprietà verranno eliminati o sovrascritti quando il messaggio viene inviato:

  • Bcc

  • Cc

  • CONTENT-ID

  • Content-Location

  • Content-Transfer-Encoding

  • Content-Type

  • Data

  • Da

  • Importanza

  • MIME-Version

  • Priorità

  • Reply-To

  • Mittente

  • A

  • Priorità X

Se l'applicazione non specifica un'intestazione X-Sender usando la Headers proprietà , la MailMessage classe ne creerà una quando viene inviato il messaggio.

Utilizzare la AlternateViews proprietà per specificare copie di un messaggio di posta elettronica in formati diversi. Ad esempio, se si invia un messaggio in HTML, è anche possibile fornire una versione di testo normale nel caso in cui alcuni destinatari usino lettori di posta elettronica che non possono visualizzare contenuto HTML. Per un esempio che illustra la creazione di un messaggio con visualizzazioni alternative, vedere AlternateViews.

Utilizzare la Attachments proprietà per aggiungere allegati a un messaggio di posta elettronica. Per un esempio che illustra la creazione di un messaggio con un allegato, vedere Attachments. La chiamata a Dispose su MailMessage chiama anche Dispose per ogni allegato a cui si fa riferimento.

Dopo aver assemblato il messaggio di posta elettronica, è possibile inviarlo usando i Send metodi o SendAsync .

Costruttori

MailMessage()

Inizializza un'istanza vuota della classe MailMessage.

MailMessage(MailAddress, MailAddress)

Inizializza una nuova istanza della classe MailMessage utilizzando gli oggetti della classe MailAddress specificata.

MailMessage(String, String)

Inizializza una nuova istanza della classe MailMessage utilizzando gli oggetti della classe String specificata.

MailMessage(String, String, String, String)

Inizializza una nuova istanza della classe MailMessage.

Proprietà

AlternateViews

Ottiene l'insieme di allegati utilizzato per memorizzare i formati alternativi del corpo del messaggio.

Attachments

Ottiene la raccolta di allegati usata per archiviare i dati allegati a questo messaggio di posta elettronica.

Bcc

Ottiene la raccolta di indirizzi contenente i destinatari della copia per conoscenza nascosta (CCN) di questo messaggio di posta elettronica.

Body

Ottiene o imposta il corpo del messaggio.

BodyEncoding

Ottiene o imposta la codifica utilizzata per codificare il corpo del messaggio.

BodyTransferEncoding

Ottiene o imposta la codifica di trasferimento utilizzata per codificare il corpo del messaggio.

CC

Ottiene la raccolta di indirizzi contenente i destinatari della copia per conoscenza (CC) di questo messaggio di posta elettronica.

DeliveryNotificationOptions

Ottiene o imposta le notifiche di recapito per questo messaggio di posta elettronica.

From

Ottiene o imposta l'indirizzo del mittente per questo messaggio di posta elettronica.

Headers

Ottiene le intestazioni del messaggio trasmesse con questo messaggio di posta elettronica.

HeadersEncoding

Ottiene o imposta la codifica usata per le intestazioni personalizzate definite dall'utente per questo messaggio di posta elettronica.

IsBodyHtml

Ottiene o imposta un valore che indica se il corpo del messaggio di posta è in formato HTML.

Priority

Ottiene o imposta la priorità di questo messaggio di posta elettronica.

ReplyTo
Obsoleti.
Obsoleti.
Obsoleti.

Ottiene o imposta l'indirizzo ReplyTo per il messaggio di posta.

ReplyToList

Ottiene l'elenco di indirizzi a cui rispondere per il messaggio di posta.

Sender

Ottiene o imposta l'indirizzo del mittente per questo messaggio di posta elettronica.

Subject

Ottiene o imposta la riga dell'oggetto per questo messaggio di posta elettronica.

SubjectEncoding

Ottiene o imposta la codifica usata per il contenuto dell'oggetto di questo messaggio di posta elettronica.

To

Ottiene la raccolta di indirizzi contenente i destinatari di questo messaggio di posta elettronica.

Metodi

Dispose()

Rilascia tutte le risorse usate da MailMessage.

Dispose(Boolean)

Rilascia le risorse non gestite usate da MailMessage e, facoltativamente, le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a