7.如何用ChatGPT批量发邮件

这是零基础玩ChatGPT+Python——办公自动化的第7节:利用ChatGPT生成Python代码,批量发邮件。

阅读对象:不会写Python代码,但是又需要用Python来提高自己工作效率的小伙伴。

教程目的:

利用ChatGPT修改Python代码,批量发送邮件。

读者无需任何编程基础,会复制粘贴、安装软件就行。

需求:

有20个工资条,需要发到每个人的电子邮箱。

因为是工资条,必须一个一个发,至少需要10分钟,枯燥且无聊。

我们可以让ChatGPT生成Python代码,批量发送。不到一分钟,全部发送完毕。

更好玩的是:第一次调试的时候,会花一点时间。把代码调整好后,以后直接能用。不到一分钟就能全部搞定。

批量的另一个好处是:20个人花1分钟,2000个人也用不了多长时间,不会超过5分钟。如果2000人手动发送,那可得忙一整子。

一、软件准备

  1. ChatGPT账号。 如果没有账号,可以直接使用葱因智能(每天签到可以免费用10次): http://www.congyin-ai.com/#/login/register?code=c2Fpd2Vu
  2. vscode:免费。参考安装教程: http://yesaiwen.com/how-to-use-chatgpt-coding-python/
  3. 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("所有邮件已发送完毕。")


   

近期文章

发表评论