Problembeschreibung

Wenn Sie das Outlook-Objektmodell verwenden, um einer e-Mail-Nachricht für ein IMAP-Konto in Outlook 2013 ein UserProperty -Objekt hinzuzufügen, wird die folgende Fehlermeldung angezeigt:

Laufzeitfehler '-2147221239 (80040109) ': der Vorgang kann nicht durchgeführt werden, weil die Nachricht geändert wurde.

Hinweise

  • Dieses Problem tritt nur auf, wenn Sie den Code in schneller Reihenfolge ausführen, um der gleichen e-Mail-Nachricht beim zweiten Mal ein UserProperty -Objekt hinzuzufügen.

  • Dieses Problem tritt nicht auf, wenn der Vorschaubereich deaktiviert ist oder Sie zwischen e-Mail-Nachrichten wechseln, bevor Sie den Code zum zweiten Mal ausführen.

Problemumgehung

Um dieses Problem zu umgehen, schließen Sie alle Elemente, nachdem Sie den Code zum Hinzufügen eines UserProperty -Objekts zu einer e-Mail-Nachricht ausgeführt haben. Oder führen Sie den Code nur einmal für dieselbe e-Mail-Nachricht aus.

Dieses Problem tritt auf, weil das Bearbeiten und Speichern einer e-Mail-Nachricht mehrere Male für ein IMAP-Konto ineffizient ist. Wenn eine e-Mail-Nachricht gespeichert wird, muss Sie als vollständig neue e-Mail-Nachricht auf den Server hochgeladen werden, und die ursprüngliche e-Mail-Nachricht wird gelöscht. Wenn der Vorschaubereich aktiviert ist, verbleibt die ursprüngliche e-Mail-Nachricht im Arbeitsspeicher, während die zugrunde liegende e-Mail-Nachricht aufgrund der mehrfachen Uploads geändert wird. Führen Sie die folgenden Schritte aus, um dieses Problem zu reproduzieren:

  1. Wählen Sie eine e-Mail-Nachricht in der Nachrichtenliste aus.

  2. Stellen Sie sicher, dass der Vorschaubereich aktiviert ist.

  3. Führen Sie den folgenden Code für dieselbe e-Mail-Nachricht zwei mal schnell hintereinander aus:

    Function ReproCode()Dim oExp As Outlook.ExplorerDim oSel As Outlook.SelectionDim oMail As Outlook.MailItemDim oProp As UserPropertyDim oProps As UserProperties   Set oExp = Application.ActiveExplorerSet oSel = oExp.Selection   For iCount = 1 To oSel.CountIf oSel.Item(iCount).Class = OlObjectClass.olMail ThenSet oMail = oSel.Item(iCount)Set oProps = oMail.UserPropertiesSet oProp = oProps.Add("TextProp", olText, False, 1)oProp.Value = "Sample Text"oMail.SaveEnd IfNext iCountSet oExp = NothingSet oSel = NothingSet oMail = NothingSet oProp = NothingSet oProps = Nothing   End Function

Hinweis:Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder implizierte Garantie. Dazu gehören, aber nicht ausschließlich, die implizierten Garantien der Marktgängigkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Tools vertraut sind, mit denen Verfahren erstellt und gedebuggt werden. Microsoft-Supporttechniker können Ihnen helfen, die Funktionalität einer bestimmten Prozedur zu erläutern. Diese Beispiele werden jedoch nicht geändert, um zusätzliche Funktionen bereitzustellen oder Verfahren zu erstellen, die ihren spezifischen Anforderungen entsprechen. 

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Übersetzungsqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×