云衔科技是一家专注于数字化营销解决方案和SaaS软件服务的领先企业。公司凭借深厚的行业经验和专业技术能力,致力于为企业客户提供全方位、高效的数字广告代理与运营服务,以及定制化的SaaS软件解决方案。 (图片...
云衔科技是一家专注于数字化营销解决方案和SaaS软件服务的领先企业。公司凭借深厚的行业经验和专业技术能力,致力于为企业客户提供全方位、高效的数字广告代理与运营服务,以及定制化的SaaS软件解决方案。
(图片春日时光由生成)
这是零基础玩+——办公自动化的第7节:利用生成代码,批量发邮件。
阅读对象:不会写代码,但是又需要用来提高自己工作效率的小伙伴。
教程目的:
利用修改代码,批量发送邮件。
读者无需任何编程基础,会复制粘贴、安装软件就行。
需求:
有20个工资条,需要发到每个人的电子邮箱。
因为是工资条,必须一个一个发,至少需要10分钟,枯燥且无聊。
我们可以让生成代码,批量发送。不到一分钟,全部发送完毕。
更好玩的是:第一次调试的时候,会花一点时间。把代码调整好后,以后直接能用。不到一分钟就能全部搞定。
批量的另一个好处是:20个人花1分钟,2000个人也用不了多长时间,不会超过5分钟。如果2000人手动发送,那可得忙一整子。
一、软件准备
账号。
如果没有账号,可以直接使用葱因智能(每天签到可以免费用10次):#/login/?code=
:免费。参考安装教程:
163邮箱。其它的邮箱也可以。需要163邮箱的3个数据。
①邮箱:例如,我的邮箱是
②SMTP服务器 : (所有人都一样)
③授权密码: (获取方法见下方教程,保存好,不要让任何人知道)
二、素材准备
素材包含一个Excel文件夹,里面包含20个Excel工资文件,还有1个包含电子邮件地址的工资总表。
下载后,解压,获取Excel文件夹的位置,和工资总表的位置。例如:
文件位置:”D:7.\案例3-4月工资总表.xlsx”
文件夹位置` “D:7.”
三、操作步骤安装模块
首先需要在里,安装3个模块。在的终端里,输入这1个命令,后按回车:
pip install pandas openpyxl yagmail
3.1.打开,输入提示词
参考提示词:
作为一个程序员,我需要使用库来批量发送工资条邮件。以下是我需要的具体信息:
请用和库编写一个脚本,用上述邮箱账号信息向每个员工发送他们的工资条。
注意:① 标红圈的四个地方,数据要换成自己的数据 ② 需要用到 plus
3.2.复制代码,并粘贴到里
在里,新建一个文件:
① 复制里给出的代码,粘贴到里
② 点击“运行”
③ 当下面出现绿勾时,说明代码运行成功。
3.3 检查结果
用了20.3秒,20个工资表发放完毕。
查看自己的邮箱,可以看到收到的邮件:
四、小结4.1. 做这个练习的时候,需要用到 plus。
4.2. 如果只能用.5,修改代码
直接用 3.5 生成的代码有问题。可以把原代码复制粘贴给,然后让它修改代码(修改发件的邮箱信息、本地的文件地址)即可。源代码:
import pandas as pd
import os
import yagmail
# 读取员工邮箱列表
employee_data = pd.read_excel(r'D:7.temporarycopyStyle案例3-4月工资总表.xlsx')
# 初始化发件邮箱账号信息
email_account = "yesaiwen188@163.com"
email_password = "DCKTLBZWQOVPSMRO"
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.temporarycopyStyle'):
if file.startswith(str(employee_id)[:4]):
salary_slip_file = os.path.join(r'D:7.temporarycopyStyle', 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("所有邮件已发送完毕。")