MailMessage Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет сообщение электронной почты, которое может быть отправлено с помощью класса SmtpClient.
public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
interface IDisposable
Public Class MailMessage
Implements IDisposable
- Наследование
-
MailMessage
- Реализации
Примеры
В следующем примере кода показано создание и отправка сообщения электронной почты, содержащего вложение.
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
Комментарии
Экземпляры MailMessage класса используются для создания сообщений электронной почты, передаваемых на SMTP-сервер для доставки с помощью SmtpClient класса .
Отправитель, получатель, тема и текст сообщения электронной почты могут быть указаны в качестве параметров, если MailMessage используется для инициализации MailMessage объекта . Эти параметры также можно задать или получить к ней MailMessage доступ с помощью свойств объекта .
Заголовки и элементы основного почтового сообщения для сообщения можно задать с помощью следующих свойств MailMessage класса .
Заголовок или часть почты | Свойство. |
---|---|
Вложения | Attachments |
Слепые углеродные копии (BCC) | Bcc |
Углеродные копии (CC) | CC |
Content-Type | BodyEncoding |
Кодировка для пользовательских заголовков | HeadersEncoding |
Текст сообщения | Body |
Приоритет | Priority |
Recipient | To |
Reply-To | ReplyToList |
Отправитель | From |
Субъект | Subject |
Класс MailMessage также позволяет приложению получить доступ к коллекции заголовков для сообщения с помощью Headers свойства . Хотя эта коллекция доступна только для чтения (новую коллекцию нельзя задать), пользовательские заголовки можно добавлять в коллекцию или удалять из нее. Все добавленные пользовательские заголовки будут включены при отправке экземпляра MailMessage . Перед отправкой сообщения в коллекцию включаются только заголовки, специально добавленные в эту коллекцию Headers в свойстве . После отправки экземпляра MailMessageHeaders свойство также будет включать заголовки, которые задаются с помощью связанных свойств класса или параметров, передаваемых MailMessage при MailMessage использовании для инициализации MailMessage объекта.
Если некоторые заголовки электронной почты имеют неправильный формат, это может привести к повреждению сообщения электронной почты. Поэтому любой заголовок почты в коллекции headers, который можно задать с помощью свойства MailMessage класса , следует задавать только с помощью MailMessage свойства класса или в качестве параметра, передаваемого MailMessage при инициализации MailMessage объекта . Следующий список заголовков почты не следует добавлять с помощью Headers свойства , а все значения, заданные для этих заголовков с помощью Headers свойства , будут удалены или перезаписаны при отправке сообщения:
Скрытая копия
Копия
Идентификатор содержимого
Content-Location
Кодирование передачи содержимого
Content-Type
Date
Исходный тип
Важность
MIME-Version
Приоритет
Reply-To
Отправитель
Кому
Приоритет по оси X
Если приложение не указывает заголовок X-Sender с помощью Headers свойства , MailMessage класс создаст его при отправке сообщения.
Используйте свойство , AlternateViews чтобы указать копии сообщений электронной почты в разных форматах. Например, если вы отправляете сообщение в ФОРМАТЕ HTML, вам также может потребоваться указать версию в виде обычного текста на случай, если некоторые получатели используют средства чтения электронной почты, которые не могут отображать содержимое HTML. Пример, демонстрирующий создание сообщения с альтернативными представлениями, см. в разделе AlternateViews.
Используйте свойство для Attachments добавления вложений в сообщение электронной почты. Пример, демонстрирующий создание сообщения с вложением, см. в разделе Attachments. Вызов Dispose в MailMessage также вызывает Dispose для каждого упоминаемого вложения.
После сборки сообщения электронной почты его можно отправить с помощью Send методов или SendAsync .
Конструкторы
MailMessage() |
Инициализирует пустой экземпляр класса MailMessage. |
MailMessage(MailAddress, MailAddress) |
Инициализирует новый экземпляр класса MailMessage, используя указанные объекты класса MailAddress. |
MailMessage(String, String) |
Инициализирует новый экземпляр класса MailMessage, используя указанные объекты класса String. |
MailMessage(String, String, String, String) |
Инициализирует новый экземпляр класса MailMessage. |
Свойства
AlternateViews |
Возвращает коллекцию вложений, используемую для хранения альтернативных форм текста сообщения. |
Attachments |
Возвращает коллекцию вложений, используемую для хранения данных, вложенных в это сообщение электронной почты. |
Bcc |
Возвращает коллекцию адресов, содержащую получателей скрытой копии (BCC) данного сообщения электронной почты. |
Body |
Возвращает или задает текст сообщения. |
BodyEncoding |
Возвращает или задает кодировку, используемую для кодирования текста сообщения. |
BodyTransferEncoding |
Возвращает или задает кодировку передачи, используемую для кодирования текста сообщения. |
CC |
Возвращает коллекцию адресов, содержащую получателей копии (CC) данного сообщения электронной почты. |
DeliveryNotificationOptions |
Возвращает или задает уведомления о доставке данного сообщения электронной почты. |
From |
Возвращает или задает адрес отправителя данного сообщения электронной почты. |
Headers |
Возвращает заголовки электронной почты, передаваемые с данным сообщением. |
HeadersEncoding |
Возвращает или задает кодировку, используемую для пользовательских заголовков данного сообщения электронной почты. |
IsBodyHtml |
Возвращает или задает значение, указывающее, имеет ли текст почтового сообщения формат HTML. |
Priority |
Возвращает или задает приоритет данного сообщения электронной почты. |
ReplyTo |
Устаревшие..
Устаревшие..
Устаревшие..
Возвращает или задает адрес ReplyTo для данного почтового сообщения. |
ReplyToList |
Возвращает список адресов для ответа для данного почтового сообщения. |
Sender |
Возвращает или задает адрес отправителя данного сообщения электронной почты. |
Subject |
Возвращает или задает строку темы для данного сообщения электронной почты. |
SubjectEncoding |
Возвращает или задает кодировку, используемую для темы данного сообщения электронной почты. |
To |
Возвращает коллекцию адресов, содержащую получателей данного сообщения электронной почты. |
Методы
Dispose() |
Освобождает все ресурсы, занятые модулем MailMessage. |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом MailMessage, а при необходимости освобождает также управляемые ресурсы. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |