Я работаю с пустым файлом 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: добавить строку темы и вложение.