Поделиться через


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)

Применяется к