Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python将HTML电子邮件保存为outlook文件?_Python_Email_Outlook_Win32com - Fatal编程技术网

如何使用Python将HTML电子邮件保存为outlook文件?

如何使用Python将HTML电子邮件保存为outlook文件?,python,email,outlook,win32com,Python,Email,Outlook,Win32com,有人在outlook中创建了一个很好的电子邮件模板,并将其发送给我以实现自动化 我用HTML打开了电子邮件,并用HTML重新创建了准确的电子邮件图像、格式和所有内容 我可以很好地发送这封电子邮件,但后来有人问我是否可以将所有电子邮件文件保存在一个文件夹中,以便人们可以单击它并在outlook中打开它(一个.msg文件) 我可以将电子邮件保存为.mht和.elm文件,但这两个文件都不会在outlook中打开 似乎是一个简单的要求 msgRoot = MIMEMultipart('related

有人在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文件,以便在客户端打开?就像一个预加载的电子邮件文件。你打开它,它的地址等等。。。只需点击发送即可。

使用以获得正确的文件格式

范例




这回答了你的问题吗?是否将其保存到您的计算机文件夹或Outlook文件夹?是否将其保存到我的计算机文件夹
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)                   |
+--------------+----+---------------------------------------+