使用Python的email.generator模块生成多样化的邮件内容
发布时间:2023-12-23 06:49:53
Python的email.generator模块提供了一个简单的方式来生成多样化的邮件内容。该模块提供了几个类和函数,可以帮助我们生成邮件内容、设置附件、创建MIME多部分消息等。
下面是一个使用Python的email.generator模块生成多样化的邮件内容的例子:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.generator import Generator
# 构建邮件内容
msg = MIMEMultipart()
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Test Email'
text = """
This is a test email.
"""
part1 = MIMEText(text, 'plain')
msg.attach(part1)
# 添加附件
image_data = open('image.jpg', 'rb').read()
image = MIMEImage(image_data)
image.add_header('Content-Disposition', 'attachment', filename='image.jpg')
msg.attach(image)
# 生成邮件内容字符串
gen = Generator()
email_content = gen.flatten(msg)
# 发送邮件
try:
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login('username', 'password')
server.sendmail('sender@example.com', 'recipient@example.com', email_content)
server.quit()
print('Email sent successfully!')
except Exception as e:
print('Error sending email:', str(e))
在上面的例子中,我们首先导入了必要的模块和类。然后,我们创建了一个MIMEMultipart对象,该对象表示了邮件的多部分消息。我们设置了发件人、收件人和主题,并创建了一个简单的纯文本消息。接下来,我们创建了一个MIMEImage对象来表示附件,并将其附加到邮件中。然后,我们使用Generator类中的flatten方法生成了邮件内容字符串。最后,我们使用smtplib模块发送邮件。
这是一个简单的示例,展示了如何使用Python的email.generator模块生成多样化的邮件内容。根据实际需求,我们可以添加更多的附件、HTML内容、内嵌图片和其他媒体类型等来创建更复杂的邮件。
