MailMessage Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) |