7.如何用ChatGPT批量发邮件
这是零基础玩ChatGPT+Python——办公自动化的第7节:利用ChatGPT生成Python代码,批量发邮件。
阅读对象:不会写Python代码,但是又需要用Python来提高自己工作效率的小伙伴。
文章目录
教程目的:
利用ChatGPT修改Python代码,批量发送邮件。
读者无需任何编程基础,会复制粘贴、安装软件就行。
需求:
有20个工资条,需要发到每个人的电子邮箱。
因为是工资条,必须一个一个发,至少需要10分钟,枯燥且无聊。
我们可以让ChatGPT生成Python代码,批量发送。不到一分钟,全部发送完毕。
更好玩的是:第一次调试的时候,会花一点时间。把代码调整好后,以后直接能用。不到一分钟就能全部搞定。
批量的另一个好处是:20个人花1分钟,2000个人也用不了多长时间,不会超过5分钟。如果2000人手动发送,那可得忙一整子。
一、软件准备
- ChatGPT账号。 如果没有账号,可以直接使用葱因智能(每天签到可以免费用10次): http://www.congyin-ai.com/#/login/register?code=c2Fpd2Vu
- vscode:免费。参考安装教程: http://yesaiwen.com/how-to-use-chatgpt-coding-python/
- 163邮箱。其它的邮箱也可以。 需要163邮箱的3个数据。
①邮箱:例如,我的邮箱是 yesaiwen189@163.com
②SMTP服务器 : smtp.163.com (所有人都一样)
③授权密码:DCKTLBZWQOVPSMRP (获取方法见下方教程,保存好,不要让任何人知道)
二、素材准备
素材包含一个Excel文件夹,里面包含20个Excel工资文件,还有1个包含电子邮件地址的工资总表。
http://yesaiwen.com/chatgpt-python-resources/
下载后,解压,获取Excel文件夹的位置,和工资总表的位置。例如:
文件位置:”D:\7.temporary\copyStyle\案例3-4月工资总表.xlsx
“
文件夹位置` “D:\7.temporary\copyStyle”
三、操作步骤
安装模块
首先需要在vscode里,安装3个模块。 在vscode的终端里,输入这1个命令,后按回车:
pip install pandas openpyxl yagmail
3.1.打开ChatGPT,输入提示词
参考提示词:
作为一个Python程序员,我需要使用yagmail库来批量发送工资条邮件。以下是我需要的具体信息:
- 我们有一个员工邮箱列表,存储在 _
D:\7.temporary\copyStyle\案例3-4月工资总表.xlsx
_。该表中有一个名为“邮箱”的列,其中包含员工的电子邮件地址。 - 我们的工资条存储在
D:\7.temporary\copyStyle
文件夹中。每份工资条的文件名的前4位是员工的工号。 - 员工列表中也有一个名为“工号”的列,其中包含员工的工号。
- 我们将使用以下电子邮件账号信息发送工资条:邮箱地址 *
yesaiwen188@163.com
*,密码(或授权码) *DCKTLBZWQOVPSMRO
*,SMTP服务器地址smtp.163.com
。
请用Python和yagmail库编写一个脚本,用上述邮箱账号信息向每个员工发送他们的工资条。
注意:① 标红圈的四个地方,数据要换成自己的数据 ② 需要用到ChatGPT plus
3.2.复制代码,并粘贴到vscode里
在vscode里,新建一个jupyter文件:
① 复制ChatGPT里给出的代码,粘贴到vscode里
② 点击“运行”
③ 当下面出现绿勾时,说明代码运行成功。
3.3 检查结果
用了20.3秒,20个工资表发放完毕。
查看自己的邮箱,可以看到收到的邮件:
四、小结
4.1. 做这个练习的时候,需要用到ChatGPT plus。
4.2. 如果只能用ChatGPT3.5,修改代码
直接用ChatGPT 3.5 生成的代码有问题。 可以把原代码复制粘贴给ChatGPT,然后让它修改代码(修改发件的邮箱信息、本地的文件地址)即可。 源代码:
import pandas as pd
import os
import yagmail
# 读取员工邮箱列表
employee_data = pd.read_excel(r'D:\7.temporary\copyStyle\案例3-4月工资总表.xlsx')
# 初始化发件邮箱账号信息
email_account = "yesaiwen189@163.com"
email_password = "DCKTLBZWQOVPSMRP"
smtp_server = "smtp.163.com"
# 连接到邮箱服务器
yag = yagmail.SMTP(user=email_account, password=email_password, host=smtp_server)
# 遍历员工列表,发送邮件
for index, row in employee_data.iterrows():
employee_id = row['工号']
employee_email = row['邮箱']
# 在工资条文件夹中查找对应工号的工资条
salary_slip_file = None
for file in os.listdir(r'D:\7.temporary\copyStyle'):
if file.startswith(str(employee_id)[:4]):
salary_slip_file = os.path.join(r'D:\7.temporary\copyStyle', file)
break
# 如果找到工资条,发送邮件
if salary_slip_file:
subject = "工资条"
message = f"亲爱的员工{employee_id},附件是您的工资条,请查收。"
yag.send(to=employee_email, subject=subject, contents=message, attachments=salary_slip_file)
print(f"已发送工资条邮件给:{employee_email}")
else:
print(f"未找到员工{employee_id}的工资条")
print("所有邮件已发送完毕。")
发表评论