Python自动化:自动化流程,自动检测,自动预警,自动群发邮件

我是智能取经人 2024-06-20 11:51:52

摘要: 在快节奏的职场环境中,项目延期似乎成了家常便饭。但如何高效、准确地通知所有相关方,却成了一个让人头疼的问题。本文将介绍如何利用Python自动化办公技术,实现项目延期预警信息的自动识别与自动群发邮件,彻底告别手动繁琐,提升工作效率!

项目延期的痛点

对于许多职场人士来说,项目延期是一个不可避免的挑战。尤其是当项目进度出现偏差时,及时通知所有相关方并解释原因变得尤为重要。然而,手动发送大量的延期通知邮件不仅效率低下,还容易出错,影响团队的专业形象。

Python自动化办公的解决方案

Python作为一种强大的编程语言,为我们提供了自动化办公的解决方案。通过Python,我们可以编写脚本来自动完成重复性、繁琐的任务,如自动发送邮件通知。

实现项目延期预警自动群发邮件

最近,我接到了一个外贸公司的需求:他们需要一个系统,当工厂实际生产进度延后于计划进度时,能够自动将订单号、客户、延期信息等群发给相关负责人。

构建邮件发送功能

我使用了Python的邮件发送库,如smtplib和email等,来构建邮件发送的功能。通过配置SMTP服务器、发件人邮箱、收件人邮箱等参数,实现了邮件的自动化发送。

动态生成邮件内容

为了使每封邮件都能根据具体项目的情况进行个性化定制,我使用了Python的字符串处理函数,生成邮件内容

整合订单延期信息

我将订单延期的相关信息整合到一个数据源中,如Excel表格或数据库。通过Python的数据处理库,如pandas,读取和处理这些数据。

自动化邮件群发

编写循环遍历数据源中的每一行数据,根据每行数据中的收件人邮箱和项目延期信息,动态生成邮件内容并发送。

集成到自动化办公系统

将整个程序打包成一个可执行文件或脚本,并集成到公司的自动化办公系统中。当项目延期时,只需运行该程序,即可自动完成邮件的群发工作。

核心代码

import pandas as pdimport datetimeimport smtplib# 处理邮件内容的库,email.minefrom email.mime.text import MIMETextimport loggingimport oslogging.basicConfig(filename='E:\code\Plan_m\log.log', level=logging.INFO,filemode = 'a', format = '【%(asctime)s】 【%(levelname)s】 >>> %(message)s', datefmt = '%Y-%m-%d %H:%M')# 邮箱属性配置def send_email(text_msg): # 邮箱服务端 mailserver = 'smtp.163.com' # 发件人-填写自己的邮箱 userName_SendMail = 'zdy15921159716@163.com' # 邮箱发件授权码-为发件人生成的授权码,详见下文 userName_AuthCode = 'BOEFGGZHRAHEXGRN' # 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示 per_email = email_dict.get(text_msg.get("跟进人","None"),"None") print(per_email) received_mail = ['young@example.com'] # 加入祖总 刘总 张总邮箱 # final_received_mail = received_mail+per_email # print(final_received_mail) # 发送一封简单的邮件,处理邮件内容 content = f'你有一个工厂订单即将预期,请及时处理。\n 工厂:{text_msg.get("工厂",None)},客户:{text_msg.get("客户",None)},样品单号:{text_msg.get("样品单号",None)},到期时间:{text_msg.get("计划完成时间",None)},样品明细:{text_msg.get("样品明细",None)},责任人:{text_msg.get("跟进人",None)}' print(content) # 纯文本形式的邮件内容的定义,通过MIMEText进行操作,plain为默认的文本的展示形式 email = MIMEText(content, 'plain', 'utf-8') email['Subject'] = '即将延期的批量样品单提醒' # 定义邮件主题 email['From'] = "通知机器人" # 发件人 email['To'] = ','.join(received_mail) # 收件人(可以添加多个,若只有一个收件人,可直接写邮箱号) # 发送邮件 # QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSL smtp = smtplib.SMTP_SSL(mailserver, port=465) smtp.login(userName_SendMail, userName_AuthCode) smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string()) smtp.quit() logging.info('恭喜,邮件发送成功了')today = datetime.date.today()data_dir = 'E:\code\Plan_m\批量样品跟进'for excl in os.listdir(data_dir): try: excl_path = os.path.join(data_dir,excl) data = pd.read_excel(excl_path) data['计划完成时间'] = pd.to_datetime(data['计划完成时间']) for i,row in data.iterrows(): try: diff_day = (row['计划完成时间']-pd.Timestamp(today)).days # print(dict(row)) logging.info(diff_day) if diff_day<=3: send_email(dict(row)) else: logging.info("未延期") except Exception as e: logging.info(e) continue except Exception as e: logging.info(excl_path) logging.info(e) continue# data = pd.read_excel("E:\Plan_m\批量样品跟进计划表.xlsx")# # data['下单时间'] = pd.to_datetime(data['下单时间'])

163邮箱安全码设置【python代码中的密码使用这个而不是邮箱密码】

代码运行结果

成果:提升工作效率,减少错误

通过Python自动化办公技术,外贸公司成功实现了项目延期预警信息的自动识别与自动群发邮件,大大提升了工作效率,减少了人为错误。

结语:Python自动化办公的无限可能

Python自动化办公技术不仅适用于邮件群发,它在数据处理、文件操作、网络爬虫等多个领域都有着广泛的应用。掌握Python自动化技能,将为我们的工作和生活带来无限的便利。

你是否也在为项目延期通知而烦恼?在评论区留言,分享你的经历,让我们一起探讨如何用Python自动化技术简化工作,提升效率!

数海丹心

大数据和人工智能知识分享与应用

108篇原创内容

公众号

0 阅读:0

我是智能取经人

简介:感谢大家的关注