用Python打造自动化邮件提醒系统

使用Python构建一个自动化邮件提醒系统,用于定时发送任务、会议或事件提醒邮件,可以提升我们的时间管理效率。

第一步:理解邮件提醒的作用

邮件提醒系统可以确保你不会错过重要事件。与本地通知相比,电子邮件可以跨设备访问,更适合正式场合。

一个基本系统应包含:

  • 自动撰写并发送邮件
  • 设定邮件发送时间
  • 管理任务列表与截止时间
  • 支持任务的持久化存储

第二步:设置开发环境

安装所需库, 我们将使用:

  • schedule用于任务定时
  • yagmail用于基于Gmail发送邮件
  • pickle或json进行任务持久化

第三步:定义任务与邮件内容

我们定义一个 Reminder 类表示每个提醒任务:

class Reminder:

def __init__(self, title, time_str, email, message):

self.title = title

self.time_str = time_str  # “HH:MM”

self.email = email

self.message = message

创建一个列表用于存储提醒任务:

添加一个用于创建提醒的函数:

def add_reminder(title, time_str, email, message):

r = Reminder(title, time_str, email, message)

reminders.append(r)

print(f”Added reminder: {title} at {time_str} to {email}”)

第四步:在指定时间发送邮件

使用 yagmail 实现邮件发送:

import yagmail

yag = yagmail.SMTP(“[email protected]”, “your_app_password”)

def send_email(reminder):

yag.send(

to=reminder.email,

subject=f”Reminder: {reminder.title}”,

contents=reminder.message

)

print(f”Sent reminder to {reminder.email}”)

安排定时发送:

import schedule

for r in reminders:

schedule.every().day.at(r.time_str).do(send_email, r)

第五步:保持系统持续运行

使用循环持续检测任务:

import time

def run_reminder_service():

while True:

schedule.run_pending()

time.sleep(1)

run_reminder_service()

第六步:保存与加载提醒任务

使用 pickle 进行持久化存储:

import pickle

def save_reminders():

with open(“reminders.pkl”, “wb”) as f:

pickle.dump(reminders, f)

def load_reminders():

global reminders

try:

with open(“reminders.pkl”, “rb”) as f:

reminders = pickle.load(f)

except FileNotFoundError:

reminders = []

在程序开始时调用 load_reminders(),每次添加提醒后调用 save_reminders()。

可选步骤:添加命令行交互

让用户可以通过命令行添加任务:

while True:

cmd = input(“Enter command (add/show/quit): “).strip().lower()

if cmd == “add”:

title = input(“Title: “)

time_str = input(“Time (HH:MM): “)

email = input(“Recipient Email: “)

message = input(“Message: “)

add_reminder(title, time_str, email, message)

save_reminders()

elif cmd == “show”:

for r in reminders:

print(f”{r.title} at {r.time_str} -> {r.email}”)

elif cmd == “quit”:

break

打造自动化邮件提醒系统是一个非常实用的Python项目,涵盖了调度机制、持久化存储和邮件发送等多个核心技术。

有意扩展【人工智能】相关的双语词汇与知识点? 去EduRises Microlearning 跨领域学习平台试一试

点击【经验分享】,了解更多关于学习、行业与职业资讯。