欢迎访问宙启技术站
智能推送

使用email.generator模块在Python中生成多个收件人的邮件消息

发布时间:2023-12-24 12:01:30

email.generator模块是Python中用于生成邮件消息的模块。它可以将邮件消息对象转换为字符串形式,并可以生成带有多个收件人的邮件消息。下面是一个示例,演示如何使用email.generator模块生成带有多个收件人的邮件消息。

首先,我们需要导入email模块和email.message模块,以及email.generator模块:

import email
from email.message import EmailMessage
from email.generator import Generator

接下来,我们需要创建一个EmailMessage对象,并设置发件人、收件人、主题和正文:

msg = EmailMessage()
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient1@example.com, recipient2@example.com'
msg['Subject'] = 'Test Email'
msg.set_content('This is a test email.')

注意,我们可以在收件人字段中指定多个收件人,用逗号分隔。

然后,我们需要创建一个StringIO对象,并将其传递给Generator的构造函数,以便在其中生成邮件消息的字符串表示:

stream = StringIO()
gen = Generator(stream, mangle_from_=False)
gen.flatten(msg)

最后,我们可以使用StringIO对象的getvalue方法获取生成的邮件消息的字符串表示:

email_str = stream.getvalue()
print(email_str)

完整的示例代码如下:

import email
from email.message import EmailMessage
from email.generator import Generator
from io import StringIO

# 创建EmailMessage对象并设置相关信息
msg = EmailMessage()
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient1@example.com, recipient2@example.com'
msg['Subject'] = 'Test Email'
msg.set_content('This is a test email.')

# 创建StringIO对象并生成邮件消息的字符串表示
stream = StringIO()
gen = Generator(stream, mangle_from_=False)
gen.flatten(msg)

# 获取生成的邮件消息的字符串表示
email_str = stream.getvalue()
print(email_str)

这样,我们就可以使用email.generator模块在Python中生成带有多个收件人的邮件消息了。