Formatering tapt når du redigerer HtmlBody-egenskapen for et Outlook-element ved hjelp av Outlook-objektmodellen

Opprinnelig KB-nummer: 4020759

Symptom

Anta at du oppretter et nytt MailItem-, AppointmentItem- eller MeetingItem-objekt ved hjelp av Outlook-objektmodellen. Deretter angir du htmlBody-egenskapen for elementet til en tidligere opprettet, velformet HTML-kilde som inneholder CSS-stiler (Cascading Style Sheet). Når du har kalt opp Visning-metoden og Send-metoden for å sende elementet, kan formateringen som er diktert av de konfigurerte CSS-stilene forsvinne, eller avsnittsstilene kan bli erstattet av MSONormal klassen.

Årsak

Microsoft Outlook bruker Microsoft Word som redigeringsprogram. Tap av formatering kan oppstå når HTML-kilden valideres av den Word HTML-motoren når elementet sendes.

Løsning

Vi anbefaler at du bruker det underliggende WordEditor-objektet til inspeksjonen til å redigere HTML- og RTF-tekstformatet (RTF) for Outlook-elementer når du bruker Outlook-objektmodellen, i stedet for å redigere HtmlBody egenskapen. Se eksemplet nedenfor.

Obs!

Se Word objektmodell for mer informasjon.

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