MailMessage.AlternateViews 屬性

定義

取得附件集合,用於儲存訊息主體的替代格式。

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

範例

下列程式碼範例示範如何使用純文字和 HTML 替代檢視建立和傳送電子郵件訊息。

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使用 屬性可指定不同格式的電子郵件訊息複本。 例如,如果您以 HTML 傳送郵件,您可能也想要提供純文字版本,以防某些收件者使用無法顯示 HTML 內容的電子郵件讀取器。

若要將替代檢視新增至 MailMessage 物件,請建立 Attachment 檢視的 ,然後將它新增至 所 AlternateViews 傳回的集合。 Body使用 屬性來指定文字版本,並使用 AlternateViews 集合來指定其他 MIME 類型的檢視。 MediaTypeNames使用類別成員來指定替代檢視的 MIME 類型。

適用於