使用email.MIMEMultipartMIMEMultipart()模块在Python中处理邮件批量发送
发布时间:2024-01-07 23:17:07
邮件批量发送是一个常见的需求,可以使用Python的email和smtplib模块来处理。
首先,需要导入相关的模块:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage
然后,需要设置发送方和接收方的邮箱地址和认证信息:
from_addr = 'your_email@gmail.com' password = 'your_password' smtp_server = 'smtp.gmail.com' smtp_port = 587
接下来,定义邮件内容和附件等信息:
subject = 'Email Subject' body = 'Hello, This is the email body.' msg = MIMEMultipart() msg['From'] = from_addr msg['To'] = ','.join(to_addrs) # to_addrs是一个收件人列表 msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) # 添加附件 filename = 'attachment.txt' attachment = open(filename, 'rb') att = MIMEText(attachment.read(), 'base64', 'utf-8') att['Content-Type'] = 'application/octet-stream' att['Content-Disposition'] = 'attachment; filename="%s"' % filename msg.attach(att)
最后,使用smtplib模块连接SMTP服务器并发送邮件:
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(from_addr, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
下面是完整的示例代码,以实现批量发送带附件的邮件:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from_addr = 'your_email@gmail.com'
password = 'your_password'
smtp_server = 'smtp.gmail.com'
smtp_port = 587
to_addrs = ['recipient1@example.com', 'recipient2@example.com']
subject = 'Email Subject'
body = 'Hello, This is the email body.'
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = ','.join(to_addrs)
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
filename = 'attachment.txt'
attachment = open(filename, 'rb')
att = MIMEText(attachment.read(), 'base64', 'utf-8')
att['Content-Type'] = 'application/octet-stream'
att['Content-Disposition'] = 'attachment; filename="%s"' % filename
msg.attach(att)
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(from_addr, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
注意,上述示例代码以使用Gmail作为邮件服务器的场景进行编写。如果使用其他邮件服务器,需要替换相应的SMTP服务器地址和端口。
希望这个例子可以帮助你理解如何使用email和smtplib模块来处理邮件批量发送的问题。
