为了用 Python 编写自动发送每日电子邮件报告的脚本,你可以使用 smtplib
库来发送电子邮件,使用 email
库来创建电子邮件内容。此外,你可以使用 schedule
库来安排每天发送邮件的任务。以下是一个示例脚本以及如何设置和运行它的指导。
步骤 1: 安装必要的库
在开始之前,请确保你已经安装了必要的库。如果没有安装,可以使用以下命令来安装它们:
pip install schedule
步骤 2: 编写发送电子邮件的脚本
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import schedule
import time
def send_email():
# 设置电子邮件服务器和登录信息
smtp_server = 'smtp.example.com' # 你的SMTP服务器地址
smtp_port = 587 # 你的SMTP服务器端口
smtp_user = 'your_email@example.com' # 你的邮箱地址
smtp_password = 'your_password' # 你的邮箱密码
# 设置收件人信息
to_address = 'recipient@example.com' # 收件人邮箱地址
# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = smtp_user
msg['To'] = to_address
msg['Subject'] = '每日报告'
# 邮件正文内容
body = '这是自动发送的每日报告。'
# 将正文添加到邮件对象中
msg.attach(MIMEText(body, 'plain'))
try:
# 连接到SMTP服务器并发送邮件
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(smtp_user, smtp_password)
server.sendmail(smtp_user, to_address, msg.as_string())
server.quit()
print('邮件发送成功')
except Exception as e:
print(f'邮件发送失败: {e}')
# 使用schedule库安排任务
schedule.every().day.at("08:00").do(send_email) # 每天早上8点发送邮件
# 运行调度器
while True:
schedule.run_pending()
time.sleep(1)
步骤 3: 设置和运行脚本
编辑脚本: 用你的SMTP服务器地址、端口、邮箱地址和密码替换脚本中的占位符。注意,使用真实的电子邮件和密码时要注意安全,可以使用环境变量或者配置文件来存储敏感信息。
保存脚本: 将脚本保存为
daily_email_report.py
。运行脚本: 在命令行中导航到脚本所在的目录,然后运行:
python daily_email_report.py
注意事项
- 安全性: 不要在脚本中直接包含明文密码,推荐使用环境变量或者加密的方式来存储和读取密码。
- 调试: 初次运行脚本时,可能需要先手动运行
send_email()
函数来确保邮件发送功能正常。 - 计划任务: 确保你的机器或服务器在预定时间处于开启状态,否则可以考虑使用服务器上的cron任务来运行脚本。
通过上述步骤,你就可以每天自动发送电子邮件报告了。如果需要进一步定制电子邮件内容或处理其他逻辑,可以根据需求扩展 send_email()
函数中的内容。