Udostępnij za pośrednictwem


Formatowanie utracone podczas edytowania właściwości HtmlBody elementu programu Outlook przy użyciu modelu obiektów programu Outlook

Oryginalny numer KB: 4020759

Objaw

Załóżmy, że utworzysz nowy obiekt MailItem, AppointmentItem lub MeetingItem przy użyciu modelu obiektów programu Outlook. Następnie należy ustawić właściwość HtmlBody elementu na wcześniej utworzone dobrze sformułowane źródło HTML zawierające style kaskadowego arkusza stylów (CSS). Po wywołaniu metody Display i metody Send w celu wysłania elementu formatowanie podyktowane skonfigurowanymi stylami CSS może zniknąć lub style akapitu mogą zostać zastąpione przez klasę MSONormal .

Przyczyna

Program Microsoft Outlook używa programu Microsoft Word jako edytora. Utrata formatowania może wystąpić, gdy źródło HTML jest weryfikowane przez aparat html Word podczas wysyłania elementu.

Obejście problemu

Zalecamy użycie podstawowego obiektu WordEditor inspektora do edytowania treści HTML i formatu rtf (Rich Text Format) elementów programu Outlook podczas korzystania z modelu obiektów programu Outlook zamiast edytowania HtmlBody właściwości. Zobacz poniższy przykład.

Uwaga

Aby uzyskać więcej informacji, zobacz model obiektów Word.

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