有人在 Outlook 中创建了一个不错的电子邮件模板并将其发送给我以实现自动化。
我打开了 HTML 格式的电子邮件,并使用该 HTML 重新创建了准确的电子邮件图像、格式等。
我可以很好地发送这封电子邮件,但随后有人问我是否可以将所有电子邮件文件保存在一个文件夹中,以便人们可以单击它并在 Outlook 中打开它(一个 .msg 文件)。
我可以将电子邮件另存为 .mht 和 .elm 文件,但都无法在 Outlook 中打开。
似乎是一个简单的请求......
msgRoot = MIMEMultipart('related')...
...
...
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
msgText = MIMEText('no alternative text version')
msgAlternative.attach(msgText)
msgText = MIMEText("""
...
...#too much going on here to paste. formatting and attaching images.
...
我可以成功地将其保存为 .mht 文件的部分:
with open("C:/LOCAL/test/"+var+'.mht', 'w+') as out:
gen = email.generator.Generator(out)
gen.flatten(msgRoot)
有没有一种简单的方法可以将其保存为 .msg 文件,以便在客户端中打开?就像预加载的电子邮件文件一样。你打开它,它已经写好了地址等等...只需点击发送即可。
最佳答案
与 SaveAs Method [MSDN] 合作与 OlSaveAsType获取正确的文件格式
示例
import win32com.client
Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(win32com.client.constants.olFolderInbox)
SubFolder = Inbox.Folders["folder name"]
for Item in SubFolder.Items:
try:
Item.SaveAs("D:\\Temp\\email.msg", 3) # OlSaveAsType 3
except Exception as e:
print(e)
+--------------+----+---------------------------------------+ | olDoc | 4 | Microsoft Office Word format (.doc) | | olHTML | 5 | HTML format (.html) | | olICal | 8 | iCal format (.ics) | | olMHTML | 10 | MIME HTML format (.mht) | | olMSG | 3 | Outlook message format (.msg) | | olMSGUnicode | 9 | Outlook Unicode message format (.msg) | | olRTF | 1 | Rich Text format (.rtf) | | olTemplate | 2 | Microsoft Outlook template (.oft) | | olTXT | 0 | Text format (.txt) | | olVCal | 7 | VCal format (.vcs) | | olVCard | 6 | VCard format (.vcf) | +--------------+----+---------------------------------------+
关于python - 如何使用 Python 将 HTML 电子邮件另存为 Outlook 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60536289/