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

利用email.MIMEMultipartMIMEMultipart()模块实现邮件的批量发送

发布时间:2024-01-07 23:16:10

邮件的批量发送是指将相同内容的邮件同时发送给多个收件人。在 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 列表中添加更多的收件人邮箱地址即可。