python使用原格式复制excel表数据并用写入邮箱正文批量发送
时间: 2024-09-29 18:09:28 浏览: 36
Python 批量带格式复制Sheet页到一个Excel文件中 Python源码
5星 · 资源好评率100%
在Python中,我们可以使用pandas库来处理Excel数据,以及smtplib和email库来发送电子邮件。以下是基本步骤:
1. **读取Excel数据**:
使用`pandas.read_excel()`函数读取Excel文件,例如:
```python
import pandas as pd
df = pd.read_excel('file.xlsx')
```
2. **数据预处理**:
确保需要复制的数据已经准备好,比如选择特定的列,或者对数据进行清洗和格式化。
3. **创建邮件内容**:
可能需要将DataFrame的一部分或整个数据插入到HTML格式的字符串中,因为大部分邮箱服务支持HTML邮件:
```python
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
html_content = df.to_html(index=False) # 将DataFrame转为HTML
part = MIMEText(html_content, 'html')
msg.attach(part)
```
4. **创建SMTP连接**:
使用`smtplib.SMTP`或更现代的如`smtplib.SMTP_SSL`来连接到发件人的邮箱服务器,并登录:
```python
smtp_server = 'smtp.example.com'
username = 'your_email@example.com'
password = 'your_password'
server = smtplib.SMTP(smtp_server)
server.starttls()
server.login(username, password)
```
5. **发送邮件**:
遍历收件人列表,设置每个邮件的主题、接收者地址,并发送:
```python
recipients = ['recipient1@example.com', 'recipient2@example.com']
for recipient in recipients:
msg['To'] = recipient
msg['Subject'] = 'Your Subject Here'
server.send_message(msg)
print(f"Email sent to {recipient}")
```
6. **关闭连接**:
发送完所有邮件后,记得关闭SMTP连接:
```python
server.quit()
```
注意:实际操作中,为了保护隐私,密码通常不会明文存储,而是可以使用环境变量或加密的方式保存。
阅读全文