Opmaak verloren bij het bewerken van de eigenschap HtmlBody van een Outlook-item met behulp van het Outlook-objectmodel

Origineel KB-nummer: 4020759

Symptoom

Stel dat u een nieuw MailItem-, AppointmentItem- of MeetingItem-object maakt met behulp van het Outlook-objectmodel. Vervolgens stelt u de eigenschap HtmlBody van het item in op een eerder gemaakte goed gevormde HTML-bron die css-stijlen (Cascading Style Sheet) bevat. Nadat u de weergavemethode en de methode Verzenden hebt aangeroepen om het item te verzenden, kan de opmaak die wordt bepaald door de geconfigureerde CSS-stijlen verdwijnen of worden de alineastijlen vervangen door de MSONormal klasse.

Oorzaak

Microsoft Outlook gebruikt Microsoft Word als editor. Opmaakverlies kan optreden wanneer de HTML-bron wordt gevalideerd door de Word HTML-engine wanneer het item wordt verzonden.

Tijdelijke oplossing

U wordt aangeraden het onderliggende WordEditor-object van de inspector te gebruiken om de HTML- en RTF-hoofdteksten van Outlook-items te bewerken wanneer u het Outlook-objectmodel gebruikt, in plaats van de HtmlBody eigenschap te bewerken. Zie het volgende voorbeeld.

Opmerking

Zie Word Objectmodel voor meer informatie.

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