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
|