Python自动发邮件,将列表中数值填写到表格中代码
时间: 2023-06-05 17:05:47 浏览: 84
以下是Python自动发邮件并将列表中数值填写到表格中的代码示例:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import pandas as pd
# 用户信息
SMTP_SERVER = 'smtp.qq.com' # 发件人SMTP服务器
SMTP_PORT = 465 # SMTP服务器端口
SMTP_USERNAME = 'youremail@qq.com' # 发件人邮箱账号
SMTP_PASSWORD = 'yourpassword' # 发件人邮箱密码
# 收件人和邮件标题
RECIPIENTS = ['recipient1@gmail.com', 'recipient2@gmail.com'] # 收件人邮箱列表
SUBJECT = 'Email with attached table'
# 邮件正文
TEXT = 'Please find attached a table below:'
# 数据列表
data = [1, 2, 3, 4, 5]
# 将数据列表转换成DataFrame
df = pd.DataFrame({'Data': data})
# 将DataFrame写入Excel文件
writer = pd.ExcelWriter('table.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()
# 创建邮件对象
msg = MIMEMultipart()
# 添加邮件正文
msg.attach(MIMEText(TEXT))
# 添加Excel文件附件
with open('table.xlsx', 'rb') as f:
attachment = MIMEApplication(f.read(), _subtype='xlsx')
attachment.add_header('content-disposition', 'attachment', filename='table.xlsx')
msg.attach(attachment)
# 发送邮件
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as smtp:
smtp.login(SMTP_USERNAME, SMTP_PASSWORD)
for recipient in RECIPIENTS:
msg['To'] = recipient
msg['Subject'] = SUBJECT
smtp.sendmail(SMTP_USERNAME, recipient, msg.as_string())
```
这里展示的代码是一个完整的发送邮件并将数据列表填写到Excel表格中的示例代码。其中,我们使用了 Pandas 库来将数据列表转换成 DataFrame,并利用 XlsxWriter 库将 DataFrame 中的数据写入 Excel 文件。最后我们将 Excel 文件作为邮件附件添加到邮件中发送给收件人。