Thema Datum  Von Nutzer Rating
Antwort
Rot Outlook TaskItem RTFBody
16.01.2025 18:33:45 Ray
NotSolved
17.01.2025 13:16:34 Gast36950
NotSolved

Ansicht des Beitrags:
Von:
Ray
Datum:
16.01.2025 18:33:45
Views:
13
Rating: Antwort:
  Ja
Thema:
Outlook TaskItem RTFBody

Hi zusammen,

es scheint als wäre auf StackOverflow niemand in der Lage, mir zu helfen. Vllt hat ja jemand hier eine Ahnung?

Ich versuche TaskItems neu aufzusetzten (aufgrund einer allgemeinen Deletion Policy basierend auf dem Erstellungsdatum - nicht dem Modifizierungsdatum - in unserer Firma). In diesen Tasks habe ich auch einige Bilder und Dateien inline abgelegt, die ich gerne mitkopieren möchte. D.h. ich kann nicht einfach .Body verwenden.

Leider funktioniert diese Code Zeile aber auch nicht:

new_task.RTFBody = old_task.RTFBody

FYI ich code mit python, da VBA in unserer Firma in Outlook deaktiviert ist, der Code ist aber quasi der selbe.

Diese Zeile gibt mir jedenfalls folgende Fehlermeldung:

An error occurred: (-2147024809, 'The parameter is incorrect.', None, None)

 

Hier ist der gesamte Code (der Teil zum Kopieren von attachments ist auskommentiert, da dies für inline Bilder & Dokumente ohnehin nicht zu funktionieren scheint):

import win32com.client
import tempfile
import os
import shutil

def duplicate_and_delete_tasks():
    try:
        outlook = win32com.client.Dispatch("Outlook.Application")
        namespace = outlook.GetNamespace("MAPI")

        tasks_folder = namespace.GetDefaultFolder(13)

        original_tasks = [task for task in tasks_folder.Items if task.Class == 48]

        for task in original_tasks:
            print("Task being processed: " + task.Subject)
            new_task = tasks_folder.Items.Add("IPM.Task")
            new_task.Subject = task.Subject
            try:
                new_task.RTFBody = task.RTFBody
            except:
                new_task.Body = task.Body
            new_task.StartDate = task.StartDate
            new_task.DueDate = task.DueDate
            new_task.Categories = task.Categories
            new_task.Importance = task.Importance
            new_task.Status = task.Status
            # if task.Attachments.Count > 0:
            #     temp_dir = tempfile.mkdtemp()
            #     for attachment in task.Attachments:
            #         try:
            #             attachment.SaveAsFile(os.path.join(temp_dir, attachment.FileName))
            #             new_task.Attachments.Add(os.path.join(temp_dir, attachment.FileName))
            #         except:
            #             pass
            #     shutil.rmtree(temp_dir)
            new_task.Save()
            print("New task created.")
            task.Delete()
            print("Old task deleted.")

        print("All tasks have been successfully processed.")

    except Exception as e:
        print(f"An error occurred: {e}")

duplicate_and_delete_tasks()

 

Vllt hat jemand Erfahrung mit dem Thema und kann mir sagen, wie man den RTFBody erfolgreich von einer Task zur anderen migriert?

Liebe Grüße
Ray


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Outlook TaskItem RTFBody
16.01.2025 18:33:45 Ray
NotSolved
17.01.2025 13:16:34 Gast36950
NotSolved