Formatering som förloras när du redigerar egenskapen HtmlKommando för ett Outlook-objekt med hjälp av Outlook-objektmodellen

Ursprungligt KB-nummer:   4020759

Symptom

Anta att du skapar ett nytt MailItem-, AppointmentItem-eller MeetingItem-objekt med hjälp av Outlook-objektmodellen. Sedan anger du egenskapen HtmlGenskap för objektet till några tidigare formatmallar i HTML-källa som innehåller CSS-format (Cascading Style Sheet). När du anropar visningsmetoden och metoden Skicka för att skicka objektet kan formateringen som styrs av de konfigurerade CSS-formaten försvinna eller styckeformaten ersättas av MSONormal klassen.

Orsak

Microsoft Outlook använder Microsoft Word som sin redigerare. Formateringen kan gå förlorad när HTML-källan verifieras av HTML-motorn i Word när objektet skickas.

Lösning

Vi rekommenderar att du använder det underliggande WordEditor-objektet för kontroll för att redigera HTML- och RTF-objektens (Rich Text Format) text när du använder Outlook-objektmodellen, i stället för att redigera HtmlBody egenskapen. Se följande exempel.

Anteckning

Mer information finns i Word-objektmodell.

using Outlook = Microsoft.Office.Interop.Outlook;
using Word = Microsoft.Office.Interop.Word;
namespace CreateAndEditMailItemUsingWord
{
    class Program
    {
        static void Main(string[] args)
        {
            Outlook.MailItem mailItem = (new Outlook.Application()).CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
            Word.Document wordDocument = mailItem.GetInspector.WordEditor as Word.Document;
            // Insert the text at the very beginning of the document
            // You can control fonts and formatting using the ParagraphFormat propety of the Word.Range object
            Word.Range wordRange = wordDocument.Range(0, 0);
            wordRange.Text = "Please insert your text here";
            mailItem.Display();
        }
    }
}