在 Python 中保存到 .msg 文件,或者将邮件发送到文件系统

Dee*_*ace 1 python email

我正在使用该emails库发送邮件,但我还需要将其另存为.msg文件。我做了一些研究,还阅读了 msg 格式规范,偶然发现了这个 SO 答案,它显示了如何将邮件发送到文件系统C#,我想知道它是否也可以在 Python 中使用。

Ser*_*sta 6

这是可能的,也很容易。让我们假设这msg是一个包含所有标题和内容的先前组合的消息,并且您想将其写入文件 object out。您只需要:

gen = email.generator.Generator(out)  # create a generator
gen.flatten(msg)   # write the message to the file object
Run Code Online (Sandbox Code Playgroud)

完整示例:

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'] = 'sender@sending.domain'
msg['To'] = 'rcpt@receiver.domain'

# open a file and save mail to it
with open('filename.elm', 'w') as out:
    gen = email.generator.Generator(out)
    gen.flatten(msg)
Run Code Online (Sandbox Code Playgroud)

filename.elm 的内容是:

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: Simple message
From: sender@sending.domain
To: rcpt@receiver.domain

This is a simple message.
And a very simple one.
Run Code Online (Sandbox Code Playgroud)