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 tramite la SmtpClient classe .
public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
interface IDisposable
Public Class MailMessage
Implements IDisposable
- Ereditarietà
-
MailMessage
- Implementazioni
Esempio
L'esempio di codice seguente illustra la creazione e l'invio di un messaggio di posta elettronica che include un allegato.
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 utilizzate 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. Questi parametri possono anche essere impostati o accessibili 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 |
| Tipo di contenuto | BodyEncoding |
| Codifica per le intestazioni personalizzate | HeadersEncoding |
| Corpo del messaggio | Body |
| Priorità | Priority |
| Destinatario | To |
| Rispondi a | ReplyToList |
| Mittente | From |
| Argomento | Subject |
La MailMessage classe consente inoltre 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, solo le intestazioni aggiunte specificamente a questa raccolta nella Headers proprietà vengono incluse nella 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 un MailMessage oggetto viene utilizzato 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à della MailMessage classe deve essere impostata solo utilizzando la proprietà della MailMessage classe o come parametro passato quando un MailMessageMailMessage oggetto viene inizializzato. L'elenco seguente di intestazioni di posta non deve essere aggiunto utilizzando la Headers proprietà ed eventuali valori impostati per queste intestazioni tramite la Headers proprietà verranno eliminati o sovrascritti quando il messaggio viene inviato:
- Ccn
- Cc
- ID contenuto
- Content-Location
- Contenuto-Transfer-Encoding
- Tipo di contenuto
- Date
- Da
- Importanza
- MIME-Version
- Priorità
- Rispondi a
- Mittente
- Per
- 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
| Nome | Descrizione |
|---|---|
| MailMessage() |
Inizializza un'istanza vuota della MailMessage classe . |
| MailMessage(MailAddress, MailAddress) |
Inizializza una nuova istanza della MailMessage classe utilizzando gli oggetti classe specificati MailAddress . |
| MailMessage(String, String, String, String) |
Inizializza una nuova istanza della classe MailMessage. |
| MailMessage(String, String) |
Inizializza una nuova istanza della MailMessage classe utilizzando gli oggetti classe specificati String . |
Proprietà
| Nome | Descrizione |
|---|---|
| AlternateViews |
Ottiene la raccolta di allegati utilizzata per archiviare forme alternative del corpo del messaggio. |
| Attachments |
Ottiene la raccolta di allegati utilizzata per archiviare i dati allegati a questo messaggio di posta elettronica. |
| Bcc |
Ottiene la raccolta di indirizzi che contiene i destinatari della copia di carbonio cieco (BCC) per 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 che contiene i destinatari della copia in carbonio (CC) per 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 dall'indirizzo per questo messaggio di posta elettronica. |
| Headers |
Ottiene le intestazioni di posta elettronica trasmesse con questo messaggio di posta elettronica. |
| HeadersEncoding |
Ottiene o imposta la codifica utilizzata 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à del messaggio di posta elettronica. |
| ReplyTo |
Obsoleti.
Obsoleti.
Obsoleti.
Ottiene o imposta l'indirizzo ReplyTo per il messaggio di posta elettronica. |
| ReplyToList |
Ottiene l'elenco di indirizzi a cui rispondere per il messaggio di posta elettronica. |
| Sender |
Ottiene o imposta l'indirizzo del mittente per il messaggio di posta elettronica. |
| Subject |
Ottiene o imposta la riga dell'oggetto per il messaggio di posta elettronica. |
| SubjectEncoding |
Ottiene o imposta la codifica utilizzata per il contenuto dell'oggetto per il messaggio di posta elettronica. |
| To |
Ottiene la raccolta di indirizzi che contiene i destinatari del messaggio di posta elettronica. |
Metodi
| Nome | Descrizione |
|---|---|
| Dispose() |
Rilascia tutte le risorse usate da MailMessage. |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da MailMessage e, facoltativamente, rilascia 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 corrente Object. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |