要使用Python群发带附件的邮件,你可以按照以下步骤进行:
1. 导入必要的库:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
2. 设置发件人邮箱地址、密码(或授权码)、收件人邮箱地址列表、SMTP服务器地址和端口号:
```python
fromEmailAddr = '' 发件人邮箱地址
password = 'your_email_password' 密码或授权码
toEmailAddrs = ['', '', ''] 收件人邮箱地址列表
smtpHost = 'smtp.example.com' SMTP服务器地址
smtpPort = 587 SMTP端口号,通常为587或465
3. 创建一个`MIMEMultipart`对象作为邮件的根容器,并添加邮件头信息:
```python
msg = MIMEMultipart()
msg['From'] = fromEmailAddr
msg['To'] = ','.join(toEmailAddrs) 使用逗号分隔多个收件人邮箱地址
msg['Subject'] = Header('邮件主题', 'utf-8') 设置邮件主题
4. 添加邮件正文内容,如果需要的话,可以添加HTML内容:
```python
body = '邮件正文内容'
msg.attach(MIMEText(body, 'plain', 'utf-8'))
5. 添加附件,使用`MIMEApplication`对象,指定附件内容和文件名:
```python
filename = 'example.txt' 附件文件名
attachment = open(filename, 'rb') 打开附件文件
att = MIMEApplication(attachment.read(), _subtype='octet-stream')
att.add_header('Content-Disposition', 'attachment', filename=filename) 设置附件头信息
msg.attach(att)
6. 连接到SMTP服务器,登录并发送邮件:
```python
server = smtplib.SMTP(smtpHost, smtpPort)
server.starttls() 如果SMTP服务器要求TLS加密,则启用
server.login(fromEmailAddr, password)
server.sendmail(fromEmailAddr, toEmailAddrs, msg.as_string()) 发送邮件
server.quit() 断开与SMTP服务器的连接
请确保替换示例代码中的占位符(如``、`example.txt`等)为实际的发件人邮箱地址、收件人邮箱地址列表和附件文件名。