MailMessage.AlternateViews Свойство

Определение

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

public:
 property System::Net::Mail::AlternateViewCollection ^ AlternateViews { System::Net::Mail::AlternateViewCollection ^ get(); };
public System.Net.Mail.AlternateViewCollection AlternateViews { get; }
member this.AlternateViews : System.Net.Mail.AlternateViewCollection
Public ReadOnly Property AlternateViews As AlternateViewCollection

Значение свойства

AlternateViewCollection

Доступный для записи объект AlternateViewCollection.A writable AlternateViewCollection.

Примеры

В следующем примере кода показано создание и отправка сообщения электронной почты с обычным текстом и альтернативным представлением HTML.The following code example demonstrates creating and sending an email message with a plain text and an HTML alternate view.

static void CreateMessageWithMultipleViews( String^ server, String^ recipients )
{
   
   // Create a message and set up the recipients.
   MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",recipients,L"This email message has multiple views.",L"This is some plain text." );
   
   // Construct the alternate body as HTML.
   String^ body = L"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
   body = String::Concat( body, L"<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">" );
   body = String::Concat( body, L"</HEAD><BODY><DIV><FONT face=Arial color=#ff0000 size=2>this is some HTML text" );
   body = String::Concat( body, L"</FONT></DIV></BODY></HTML>" );
   
   // Add the alternate body to the message.
   AlternateView^ alternate = AlternateView::CreateAlternateViewFromString(body);
   message->AlternateViews->Add(alternate);

   // Send the message.
   SmtpClient^ client = gcnew SmtpClient( server );
   client->Credentials = CredentialCache::DefaultNetworkCredentials;
   client->Send( message );
   
   // Display the values in the ContentType for the attachment.
   ContentType^ c = alternate->ContentType;
   Console::WriteLine( L"Content type" );
   Console::WriteLine( c );
   Console::WriteLine( L"Boundary {0}", c->Boundary );
   Console::WriteLine( L"CharSet {0}", c->CharSet );
   Console::WriteLine( L"MediaType {0}", c->MediaType );
   Console::WriteLine( L"Name {0}", c->Name );
   Console::WriteLine( L"Parameters: {0}", c->Parameters->Count );
   IEnumerator^ myEnum = c->Parameters->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry^ d = safe_cast<DictionaryEntry^>(myEnum->Current);
      Console::WriteLine( L"{0} = {1}", d->Key, d->Value );
   }

   Console::WriteLine();
   alternate->~AlternateView();
}


public static void CreateMessageWithMultipleViews(string server, string recipients)
{
    // Create a message and set up the recipients.
    MailMessage message = new MailMessage(
        "jane@contoso.com",
        recipients,
        "This email message has multiple views.",
        "This is some plain text.");

    // Construct the alternate body as HTML.
    string body = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
    body += "<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">";
    body += "</HEAD><BODY><DIV><FONT face=Arial color=#ff0000 size=2>this is some HTML text";
    body += "</FONT></DIV></BODY></HTML>";

    ContentType mimeType = new System.Net.Mime.ContentType("text/html");
    // Add the alternate body to the message.

    AlternateView alternate = AlternateView.CreateAlternateViewFromString(body, mimeType);
    message.AlternateViews.Add(alternate);

    // Send the message.
    SmtpClient client = new SmtpClient(server);
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception caught in CreateMessageWithMultipleViews(): {0}",
            ex.ToString());
    }
    // Display the values in the ContentType for the attachment.
    ContentType c = alternate.ContentType;
    Console.WriteLine("Content type");
    Console.WriteLine(c.ToString());
    Console.WriteLine("Boundary {0}", c.Boundary);
    Console.WriteLine("CharSet {0}", c.CharSet);
    Console.WriteLine("MediaType {0}", c.MediaType);
    Console.WriteLine("Name {0}", c.Name);
    Console.WriteLine("Parameters: {0}", c.Parameters.Count);
    foreach (DictionaryEntry d in c.Parameters)
    {
        Console.WriteLine("{0} = {1}", d.Key, d.Value);
    }
    Console.WriteLine();
    alternate.Dispose();
}
Public Shared Sub CreateMessageWithMultipleViews(ByVal server As String, ByVal recipients As String)
    ' Create a message and set up the recipients.
    Dim message As MailMessage = New MailMessage(
        "jane@contoso.com",
        recipients,
        "This email message has multiple views.",
        "This is some plain text.")

    ' Construct the alternate body as HTML.
    Dim body As String = "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"
    body += "<HTML><HEAD><META http-equiv=Content-Type content=""text/html; charset=iso-8859-1"">"
    body += "</HEAD><BODY><DIV><FONT face=Arial color=#ff0000 size=2>this is some HTML text"
    body += "</FONT></DIV></BODY></HTML>"

    Dim mimeType As ContentType = New System.Net.Mime.ContentType("text/html")

    ' Add the alternate body to the message.
    Dim alternate As AlternateView = AlternateView.CreateAlternateViewFromString(body, mimeType)
    message.AlternateViews.Add(alternate)

    ' Send the message.
    Dim client As SmtpClient = New SmtpClient(server)
    client.Credentials = CredentialCache.DefaultNetworkCredentials

    Try
        client.Send(message)
    Catch ex As Exception
        Console.WriteLine("Exception caught in CreateMessageWithMultipleViews(): {0}", ex.ToString())
    End Try

    ' Display the values in the ContentType for the attachment.
    Dim c As ContentType = alternate.ContentType
    Console.WriteLine("Content type")
    Console.WriteLine(c.ToString())
    Console.WriteLine("Boundary {0}", c.Boundary)
    Console.WriteLine("CharSet {0}", c.CharSet)
    Console.WriteLine("MediaType {0}", c.MediaType)
    Console.WriteLine("Name {0}", c.Name)
    Console.WriteLine("Parameters: {0}", c.Parameters.Count)

    For Each d As DictionaryEntry In c.Parameters
        Console.WriteLine("{0} = {1}", d.Key, d.Value)
    Next

    Console.WriteLine()
    alternate.Dispose()
End Sub

Комментарии

Используйте 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.

Чтобы добавить альтернативное представление в MailMessage объект, создайте Attachment для представления, а затем добавьте его в коллекцию, возвращенную AlternateViews .To add an alternate view to a MailMessage object, create an Attachment for the view, and then add it to the collection returned by AlternateViews. Используйте Body свойство, чтобы указать версию текста и использовать AlternateViews коллекцию для указания представлений с другими типами MIME.Use the Body property to specify the text version and use the AlternateViews collection to specify views with other MIME types. Используйте MediaTypeNames члены класса, чтобы указать тип MIME для альтернативного представления.Use the MediaTypeNames class members to specify the MIME type for the alternate view.

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