我正在使用emails
库来发送邮件,但我也需要将它保存为.msg
文件。我已经做了一些研究,并且还阅读了msg格式规范,并偶然发现了this SO answer,它显示了如何将邮件发送到C#
中的文件系统,我想知道它是否也可以在Python中使用。在Python中保存为.msg文件,或者发送邮件到文件系统
1
A
回答
3
这是可能的,容易。我们假设msg
是以前编写的包含所有标题和内容的消息,并且您要将其写入文件对象out
。你只需要:
gen = email.generator.Generator(out) # create a generator
gen.flatten(msg) # write the message to the file object
完整的示例:
import email
# create a simple message
msg = email.mime.text.MIMEText('''This is a simple message.
And a very simple one.''')
msg['Subject'] = 'Simple message'
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
# open a file and save mail to it
with open('filename.elm', 'w') as out:
gen = email.generator.Generator(out)
gen.flatten(msg)
filename.elm的内容是:
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Simple message
From: [email protected]
To: [email protected]
This is a simple message.
And a very simple one.
-1
它是在Python可行的,我想下面的代码,节省展望邮件作为.msg文件夹中。 注意:确保outlook具有对目标文件夹的写入权限,默认情况下目标文件夹是Python脚本的位置
import win32.com
outlook=Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)
messages=inbox.items
for msg in messages:
name=msg.subject
name=str(name)
name=name+".msg"
msg.saveas(name)
相关问题
- 1. 发送电子邮件时重新保存.MSG文件
- 2. Python:保存.msg文件中的附件
- 3. ASP.NET发送图像附件与电子邮件不保存到文件系统
- 4. 发送保存在文件系统中的html文件作为响应
- 5. 电子邮件系统,发送或保存按钮选项
- 6. 在数据库或文件系统中保存PDF文件
- 7. 将outlook邮件保存到系统文件夹中的单个.txt文件中
- 8. 保存使用javax邮件发送邮件发送邮件文件夹
- 9. 将发送的邮件保存到用户发送的邮件文件夹
- 10. 加载和发送电子邮件保存为文本文件
- 11. 使用EWS API将邮件保存到msg文件
- 12. 保存文件并作为电子邮件附件发送
- 13. android:文件保存系统
- 14. 将文档保存为SQL或文件系统中的BLOB
- 15. 使用ews在正常文件系统文件夹中保存Exchange邮件
- 16. 我如何确保我的邮件($ to,$ subject,$ msg);发送邮件
- 17. 保存System.Net.mail.MailMessage作为.msg文件
- 18. 如何将文件系统的内容保存到文件中
- 19. 将音频文件保存为数据库中的BLOB或文件系统中?
- 20. 目标C:将发送的电子邮件保存为文件
- 21. 将pdf保存到文件系统
- 22. 如何将SMTP邮件保存到发送的文件夹?
- 23. 将文件另存为lob或作为操作系统文件?
- 24. 如何将创建的Zip文件保存到Python中的文件系统?
- 25. Cordova将文件从输入文件保存到文件系统=“文件”
- 26. 如何将保存的文本文件作为电子邮件附件发送
- 27. 在AWS文件系统中保存文件
- 28. 在Web API服务器文件系统中保存文件
- 29. VBA作者和发送日期的.msg文件在桌面文件夹
- 30. Python - 如何使用unicode文件名从文件系统发送文件?
谢谢。我从我的'emails'实例创建了一个'email'实例,它工作正常,但是有没有办法将它保存为'msg'而不是'eml'?我试图用open('filename.elm','w')'将'open'('filename.msg','w')'改成''但是(如预期的)outlook无法打开该文件。 – DeepSpace
@DeepSpace msg格式是一种二进制专有格式。使用它的唯一合理方式是通过展望自动化。在SO中搜索'[python] outlook msg file'给了[这个问题](http://stackoverflow.com/q/18066180/),可以给你一些提示。我无法进一步帮助你,因为我几十年来一直没有使用outlook。 –