自动生日提醒脚本编写指南:Python & Google Sheets165


生日临近,总是担心错过重要朋友或家人的生日?与其依赖手机自带的日历提醒,不如自己动手写一个个性化的生日提醒脚本!本文将以Python结合Google Sheets为例,详细讲解如何编写一个功能强大的生日提醒脚本,实现自动发送生日祝福邮件或短信。

一、 准备工作:

在开始编写脚本之前,我们需要准备以下几样东西:
Python环境: 确保你的电脑已安装Python 3.x以及pip包管理工具。你可以从官网下载安装:
Google Sheets账户: 创建一个Google Sheets表格,用于存储所有需要提醒的生日信息。表格至少包含两列:姓名和生日(日期格式)。
Google Cloud Platform (GCP) 项目和API密钥: 我们需要使用Google Sheets API来读取表格数据。你需要创建一个GCP项目,启用Google Sheets API,并创建一个服务账户密钥文件(JSON格式)。具体操作步骤可以参考Google官方文档。
邮箱账户或短信服务商API: 为了发送生日提醒,你需要一个支持发送邮件的邮箱账户或短信服务商的API密钥。本文以发送邮件为例,但原理同样适用于短信提醒。
必要的Python库: 我们需要安装以下Python库:google-api-python-client, google-auth-httplib2, google-auth-oauthlib, smtplib (用于发送邮件)。 使用pip安装:pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib smtplib

二、 代码实现:

以下是一个Python脚本示例,它读取Google Sheets中的生日信息,并通过邮件发送生日祝福:```python
import gspread
from google.oauth2 import service_account
from datetime import datetime, timedelta
import smtplib
from import MIMEText
# 替换为你的服务账户密钥文件路径
credentials = .from_service_account_file('')
gc = gspread.service_account(credentials=credentials)
# 替换为你的Google Sheets表格ID
sh = gc.open_by_key('your_spreadsheet_id')
worksheet = sh.sheet1
# 获取今日日期
today = ()
# 读取表格数据
data = worksheet.get_all_values()
headers = data[0] # 表头
birthdays = data[1:] # 生日数据
# 发送邮件
smtp_server = '' # 替换为你的SMTP服务器
smtp_port = 587 # 替换为你的SMTP端口
sender_email = 'your_email@' # 替换为你的邮箱地址
sender_password = 'your_password' # 替换为你的邮箱密码
for birthday in birthdays:
name = birthday[0]
birthdate_str = birthday[1]
try:
birthdate = (birthdate_str, '%Y-%m-%d') #调整日期格式,根据你的表格格式修改
if == and == :
message = f"亲爱的{name},生日快乐!祝你生日快乐,心想事成!"
msg = MIMEText(message)
msg['Subject'] = f"{name}生日快乐!"
msg['From'] = sender_email
msg['To'] = 'recipient_email@' #替换成收件人邮箱,也可以从表格中读取
with (smtp_server, smtp_port) as server:
()
(sender_email, sender_password)
server.send_message(msg)
print(f"已发送生日邮件给{name}")
except ValueError:
print(f"无效的日期格式:{birthdate_str}")
```

三、 代码解释:

这段代码首先使用gspread库连接到你的Google Sheets表格,读取生日信息。然后,它遍历每一条生日记录,检查今天的日期是否与生日日期匹配。如果匹配,则使用smtplib库发送一封生日邮件。 你需要替换代码中的占位符为你的实际信息,包括服务账户密钥文件路径、Google Sheets表格ID、SMTP服务器信息、邮箱地址和密码等。

四、 进阶功能:

你可以根据实际需要添加更多功能,例如:
定时任务: 使用系统定时任务或第三方库(如schedule)定时运行脚本。
短信提醒: 集成短信服务商API,发送短信提醒。
个性化祝福: 从表格中读取更多信息,例如联系方式、喜好等,生成个性化的生日祝福。
错误处理: 完善错误处理机制,例如处理网络错误、邮箱地址错误等。
界面化: 使用GUI库(如Tkinter或PyQt)创建图形界面,方便用户管理生日信息。

五、 注意事项:

在使用Google Sheets API时,需要注意以下几点:
确保你的服务账户密钥文件具有足够的权限访问你的Google Sheets表格。
注意保护你的服务账户密钥文件,避免泄露。
遵循Google Sheets API的使用规范。

编写一个生日提醒脚本需要一定的编程基础,但只要掌握了基本的Python语法和Google Sheets API的使用方法,就能轻松完成。希望本文能够帮助你编写一个属于你自己的生日提醒脚本,不再错过任何一个重要的生日!

2025-05-09


上一篇:苹果App提醒通知详解:设置、管理及故障排除

下一篇:高效时间管理:掌握“放时提醒”的技巧与应用