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

使用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内容、内嵌图片和其他媒体类型等来创建更复杂的邮件。