Formateringen gick förlorad när egenskapen HtmlBody för ett Outlook-objekt redigerades 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 htmlbody-egenskapen för objektet till en html-källa som skapats tidigare och som innehåller CSS-formatmallar (Cascading Style Sheet). När du anropar visningsmetoden och metoden Skicka för att skicka objektet kan den formatering som dikteras av de konfigurerade CSS-formaten försvinna, eller så kan styckeformaten ersättas av MSONormal klassen.

Orsak

Microsoft Outlook använder Microsoft Word som redigerare. Formateringsförlust kan inträffa när HTML-källan verifieras av Word HTML-motorn när objektet skickas.

Lösning

Vi rekommenderar att du använder det underliggande WordEditor-objektet i inspektören för att redigera HTML- och RTF-objekten (RTF) när du använder Outlook-objektmodellen i stället för att redigera HtmlBody egenskapen. Se följande exempel.

Obs!

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();
        }
    }
}