利用email.MIMEMultipartMIMEMultipart()模块实现邮件的批量发送
邮件的批量发送是指将相同内容的邮件同时发送给多个收件人。在 Python 中,可以使用 email 和 smtplib 模块来实现邮件的发送功能。其中,email 模块用于构建邮件的内容,smtplib 模块用于发送邮件。
要实现邮件的批量发送,可以使用 email.mime.multipart.MIMEMultipart() 模块。该模块用于构建包含多个部分(文本、附件等)的邮件内容。
以下是一个示例,用于实现邮件的批量发送。假设需要给多个收件人发送相同的邮件内容:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# 定义发件人、收件人、邮件标题和内容
from_addr = 'your_email@example.com'
to_addrs = ['recipient1@example.com', 'recipient2@example.com', 'recipient3@example.com']
subject = 'Sample Email'
body = 'This is a sample email.'
# 构建邮件的 MIMEMultipart 对象
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = ', '.join(to_addrs)
msg['Subject'] = subject
# 添加邮件内容
msg.attach(MIMEText(body, 'plain'))
# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'your_username'
smtp_password = 'your_password'
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(from_addr, to_addrs, msg.as_string())
以上代码中,首先导入了 smtplib 和 email.mime.multipart.MIMEMultipart 以及 email.mime.text.MIMEText 模块。
然后,定义了发件人的邮箱地址、收件人的邮箱地址、邮件的标题和内容。注意,收件人的邮箱地址存储在一个列表中。
接下来,使用 MIMEMultipart() 创建一个邮件对象,并设置发件人、收件人和邮件标题。
然后,使用 MIMEText() 创建邮件内容的文本部分,并将其添加到邮件对象中。如果需要添加其他类型的内容,可以使用 email.mime.image.MIMEImage、email.mime.audio.MIMEAudio 等类来构建其他类型的部分。
最后,通过 smtplib.SMTP() 创建一个 SMTP 连接,并使用 starttls() 方法启用安全传输。然后,使用 login() 方法登录邮箱账户,并使用 sendmail() 方法发送邮件。参数 from_addr 是发件人的邮箱地址,to_addrs 是收件人的邮箱地址列表,msg.as_string() 是将邮件对象转换为字符串格式。
需要注意的是,在实际使用时,需要将其中的 smtp_server、smtp_port、smtp_username 和 smtp_password 替换为真实的邮箱服务器信息和账户信息。
以上代码可以实现对多个收件人的邮件批量发送功能。只要在 to_addrs 列表中添加更多的收件人邮箱地址即可。
