Я работаю с пустым файлом msg, созданным через Outlook один раз.Следующий код добавляет вложение в электронное письмо (вы можете сохранить его, используя msg.SaveAs(Path=save_path)
).
import win32com.client
msg_path = r'C:\email.msg'
attachment_path = r'C:\specimen.pdf'
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(msg_path)
msg.Attachments.Add(Source=attachment_path)
Проблема: последняя строка msg.Attachments.Add(Source=attachment_path)
создает новый дубликат почты в папке входящих сообщений.
Здесь я нашел старое обсуждение проблемы: Добавление вложения создает новый MailItemв папке входящих сообщений .Вот несколько цитат:
OpenSharedItem
всегда создает временное сообщение и импортирует содержимое файла MSG;он не работает напрямую с указанным файлом.
Проблема в том, что сообщение сохраняется при добавлении вложения, но с этим ничего не поделаешь.
Важной частью является то, что OOM не работает с файлом MSG - после его импорта в сообщение в одной из папок Outlook исходный файл MSG исчезает из изображения.
Существуют ли обходные пути, которые не позволяют Outlook создать новое сообщение в папке «Входящие»?Если нет, то как заставить Outlook сохранить его в папке нежелательной почты?
Моя цель - изменить существующий пустой файл msg: добавить строку темы и вложение.