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


MailMessage Класс

Определение

Представляет сообщение электронной почты, которое можно отправить с помощью SmtpClient класса.

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

Примеры

В следующем примере кода показано создание и отправка сообщения электронной почты, включающее вложение.

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 Attachments
Слепые углеродные копии (BCC) Bcc
Углеродные копии (CC) CC
Тип содержимого BodyEncoding
Кодировка для пользовательских заголовков HeadersEncoding
Текст сообщения Body
Priority Priority
Recipient To
Reply-To ReplyToList
Отправитель From
Тема Subject

Класс MailMessage также позволяет приложению получить доступ к коллекции заголовков для сообщения с помощью Headers свойства. Хотя эта коллекция доступна только для чтения (новая коллекция не может быть задана), пользовательские заголовки можно добавлять или удалять из этой коллекции. Все добавленные пользовательские заголовки будут включены при отправке экземпляра MailMessage . Перед отправкой сообщения в коллекцию включаются только заголовки, добавленные в Headers эту коллекцию. MailMessage После отправки Headers экземпляра свойство также будет содержать заголовки, заданные с использованием связанных свойств MailMessage класса или параметров, передаваемых при MailMessage инициализации MailMessage объекта.

Если некоторые заголовки почты повреждены, они могут привести к повреждению сообщения электронной почты. Поэтому любой заголовок почты в коллекции заголовков, который можно задать с помощью свойства класса, MailMessage должен быть задан только с помощью MailMessage свойства класса или в качестве параметра, передаваемого MailMessage при MailMessage инициализации объекта. Следующий список заголовков почты не должен быть добавлен с помощью Headers свойства и любые значения, заданные для этих заголовков с помощью Headers свойства, будут удалены или перезаписаны при отправке сообщения:

  • Bcc
  • Копия (Cc)
  • Идентификатор содержимого
  • Расположение содержимого
  • Кодировка передачи содержимого
  • Тип содержимого
  • Дата
  • От
  • Важность
  • MIME-Version
  • Priority
  • 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, String, String)

Инициализирует новый экземпляр класса MailMessage.

MailMessage(String, String)

Инициализирует новый экземпляр MailMessage класса с помощью указанных String объектов класса.

Свойства

Имя Описание
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)

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