MailMessage Класс

Определение

Представляет сообщение электронной почты, которое может быть отправлено с помощью класса SmtpClient.Represents an email message that can be sent using the SmtpClient class.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
Наследование
MailMessage
Реализации

Примеры

В следующем примере кода показано создание и отправка сообщения электронной почты, включающего вложение.The following code example demonstrates creating and sending an email message that includes an attachment.

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 класса.Instances of the MailMessage class are used to construct email messages that are transmitted to an SMTP server for delivery using the SmtpClient class.

Отправитель, получатель, тема и текст сообщения электронной почты могут быть указаны в виде параметров, когда MailMessage объект используется для инициализации MailMessage объекта.The sender, recipient, subject, and body of an email message may be specified as parameters when a MailMessage is used to initialize a MailMessage object. Эти параметры также могут быть заданы или доступны с помощью свойств MailMessage объекта.These parameters may also be set or accessed using properties on the MailMessage object.

Основные заголовки и элементы сообщения электронной почты можно задать с помощью следующих свойств MailMessage класса.The primary mail message headers and elements for the message may be set using the following properties of the MailMessage class.

Заголовок или часть сообщения электронной почтыMail header or part Свойство.Property
ВложенияAttachments Attachments
Скрытые копии (СК)Blind carbon copies (BCC) Bcc
Копии (CC)Carbon copies (CC) CC
Content-TypeContent-Type BodyEncoding
Кодировка для пользовательских заголовковEncoding for custom headers HeadersEncoding
Текст сообщенияMessage body Body
ПриоритетPriority Priority
RecipientRecipient To
Reply-ToReply-To ReplyToList
ОтправительSender From
СубъектSubject Subject

MailMessageКласс также позволяет приложению получить доступ к коллекции заголовков для сообщения с помощью Headers Свойства.The MailMessage class also allows an application to access the headers collection for the message using the Headers property. Хотя эта коллекция доступна только для чтения (Новая коллекция не может быть задана), пользовательские заголовки можно добавлять в эту коллекцию или удалять из нее.While this collection is read-only (a new collection can not be set), custom headers can be added to or deleted from this collection. При отправке экземпляра будут включаться все добавленные пользовательские заголовки MailMessage .Any custom headers added will be included when the MailMessage instance is sent. Перед отправкой сообщения в коллекцию включаются только заголовки, специально добавленные в эту коллекцию в Headers свойстве.Before a message is sent, only headers specifically added to this collection in the Headers property are included in the collection. После MailMessage отправки экземпляра Headers свойство также будет включать заголовки, заданные с помощью связанных свойств MailMessage класса или параметров, передаваемых при MailMessage использовании для инициализации MailMessage объекта.After a the MailMessage instance is sent, the Headers property will also include headers that are set using the associated properties of the MailMessage class or parameters passed when a MailMessage is used to initialize a MailMessage object.

Если некоторые заголовки сообщений имеют неправильный формат, они могут привести к повреждению сообщения электронной почты.If some mail headers are malformed, they could cause the email message to become corrupted. Таким образом, любой заголовок электронной почты в коллекции заголовков, который можно задать с помощью свойства в MailMessage классе, должен быть задан только с помощью MailMessage Свойства Class или в качестве параметра, передаваемого при MailMessage инициализации MailMessage объекта.So any mail header in the headers collection that can be set using a property on the MailMessage class should only be set using the MailMessage class property or as a parameter passed when a MailMessage initializes a MailMessage object. Следующий список заголовков почты не должен добавляться с помощью Headers свойства, а все значения, заданные для этих заголовков, с помощью Headers свойства будут удалены или перезаписаны при отправке сообщения:The following list of mail headers should not be added using the Headers property and any values set for these headers using the Headers property will be discarded or overwritten when the message is sent:

  • Скрытая копияBcc

  • КопияCc

  • Content-IDContent-ID

  • Content-LocationContent-Location

  • Содержимое-перенос-кодированиеContent-Transfer-Encoding

  • Content-TypeContent-Type

  • DateDate

  • Исходный типFrom

  • ВажностьImportance

  • MIME-VersionMIME-Version

  • ПриоритетPriority

  • Reply-ToReply-To

  • ОтправительSender

  • КомуTo

  • X-приоритетX-Priority

Если в приложении не указан заголовок X-Sender с помощью Headers свойства, MailMessage класс создаст его при отправке сообщения.If the application does not specify an X-Sender header using the Headers property, the MailMessage class will create one when the message is sent.

Используйте AlternateViews свойство, чтобы указать копии сообщения электронной почты в различных форматах.Use the AlternateViews property to specify copies of an email message in different formats. Например, при отправке сообщения в формате HTML может также потребоваться указать версию в виде обычного текста в случае, если некоторые получатели используют средства чтения электронной почты, которые не могут отображать HTML-содержимое.For example, if you send a message in HTML, you might also want to provide a plain text version in case some of the recipients use email readers that cannot display HTML content. Пример, демонстрирующий создание сообщения с альтернативными представлениями, см AlternateViews . в разделе.For an example that demonstrates creating a message with alternate views, see AlternateViews.

Используйте Attachments свойство, чтобы добавить вложения в сообщение электронной почты.Use the Attachments property to add attachments to an email message. Пример, демонстрирующий создание сообщения с вложением, см. в разделе Attachments .For an example that demonstrates creating a message with an attachment, see Attachments. Вызов Dispose для MailMessage также вызывает Dispose для каждого вложения, на который указывает ссылка.Calling Dispose on the MailMessage also calls Dispose on each referenced Attachment.

После сборки сообщения электронной почты его можно отправить с помощью Send SendAsync методов или.After assembling your email message, you can send it by using the Send or SendAsync methods.

Конструкторы

MailMessage()

Инициализирует пустой экземпляр класса MailMessage.Initializes an empty instance of the MailMessage class.

MailMessage(MailAddress, MailAddress)

Инициализирует новый экземпляр класса MailMessage, используя указанные объекты класса MailAddress.Initializes a new instance of the MailMessage class by using the specified MailAddress class objects.

MailMessage(String, String)

Инициализирует новый экземпляр класса MailMessage, используя указанные объекты класса String.Initializes a new instance of the MailMessage class by using the specified String class objects.

MailMessage(String, String, String, String)

Инициализирует новый экземпляр класса MailMessage.Initializes a new instance of the MailMessage class.

Свойства

AlternateViews

Возвращает коллекцию вложений, используемую для хранения альтернативных форм текста сообщения.Gets the attachment collection used to store alternate forms of the message body.

Attachments

Возвращает коллекцию вложений, используемую для хранения данных, вложенных в это сообщение электронной почты.Gets the attachment collection used to store data attached to this email message.

Bcc

Возвращает коллекцию адресов, содержащую получателей скрытой копии (BCC) данного сообщения электронной почты.Gets the address collection that contains the blind carbon copy (BCC) recipients for this email message.

Body

Возвращает или задает текст сообщения.Gets or sets the message body.

BodyEncoding

Возвращает или задает кодировку, используемую для кодирования текста сообщения.Gets or sets the encoding used to encode the message body.

BodyTransferEncoding

Возвращает или задает кодировку передачи, используемую для кодирования текста сообщения.Gets or sets the transfer encoding used to encode the message body.

CC

Возвращает коллекцию адресов, содержащую получателей копии (CC) данного сообщения электронной почты.Gets the address collection that contains the carbon copy (CC) recipients for this email message.

DeliveryNotificationOptions

Возвращает или задает уведомления о доставке данного сообщения электронной почты.Gets or sets the delivery notifications for this email message.

From

Возвращает или задает адрес отправителя данного сообщения электронной почты.Gets or sets the from address for this email message.

Headers

Возвращает заголовки электронной почты, передаваемые с данным сообщением.Gets the email headers that are transmitted with this email message.

HeadersEncoding

Возвращает или задает кодировку, используемую для пользовательских заголовков данного сообщения электронной почты.Gets or sets the encoding used for the user-defined custom headers for this email message.

IsBodyHtml

Возвращает или задает значение, указывающее, имеет ли текст почтового сообщения формат HTML.Gets or sets a value indicating whether the mail message body is in HTML.

Priority

Возвращает или задает приоритет данного сообщения электронной почты.Gets or sets the priority of this email message.

ReplyTo
Является устаревшей.
Является устаревшей.
Является устаревшей.

Возвращает или задает адрес ReplyTo для данного почтового сообщения.Gets or sets the ReplyTo address for the mail message.

ReplyToList

Возвращает список адресов для ответа для данного почтового сообщения.Gets the list of addresses to reply to for the mail message.

Sender

Возвращает или задает адрес отправителя данного сообщения электронной почты.Gets or sets the sender's address for this email message.

Subject

Возвращает или задает строку темы для данного сообщения электронной почты.Gets or sets the subject line for this email message.

SubjectEncoding

Возвращает или задает кодировку, используемую для темы данного сообщения электронной почты.Gets or sets the encoding used for the subject content for this email message.

To

Возвращает коллекцию адресов, содержащую получателей данного сообщения электронной почты.Gets the address collection that contains the recipients of this email message.

Методы

Dispose()

Освобождает все ресурсы, занятые модулем MailMessage.Releases all resources used by the MailMessage.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом MailMessage, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the MailMessage and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

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