day12-Dify批量邮件和微信群通知工作流

1 目标

1.1 介绍

# 1 在企业日常运营中,批量通知是连接团队、传递信息的核心环节——从全员性的制度公告、项目进度同步,到精准化的活动邀约、任务提醒,都离不开邮件与微信群这两大主流渠道。
# 2 然而传统操作中,“重复编辑内容”“手动筛选收件人”“多渠道分别发送”“发送效果无追踪”等问题,往往让通知工作沦为耗时耗力的“机械劳动”。Dify作为开源低代码AI应用开发平台,其批量邮件与微信群通知工作流通过自动化逻辑串联与跨平台集成能力,彻底重塑了通知场景的效率与体验

# 3 工作流名称:邮件和企业微信群通知助手
	-用户输入主题:  
    	国庆节放7天假
        	-放几天?
            -办公室电要不要断掉?
            -安全注意事项。。。
        就可以自动给 全体员工发送邮件通知和企业微信群通知
        
        公司团建几月几号去哪里团建
        
        
# 4 功能
	-用户输入主题
    	-1 上传收件人地址[邮箱]---》选择邮件通知---》分别给所有收件人发送【大模型优化后的】 通知
        -2 选择企业微信群通知---》在企业微信群中,发送通知
        -3 两者都选

1.2 工作流演示

image-20251121161454899

# 1 开始
	-用户输入主题
    -选择通知类型
    -上传excel:邮箱
    
    
# 2 条件分支[多种情况做选择]
	如果 用户选择type是邮件通知---》走邮件通知分支
    如果 用户选择type是企业微信群通知---》走企业微信群通知
    其他情况,两者都走

# 3 邮件通知分支
## 3.1 解析excel 把收件人解析出来
## 3.2 代码处理数据 [大模型也可以干:慢]
	解析工具解析出后,数据格式不是我们要的列表格式[字符串格式]
    
## 3.3 大模型根据主题,生成通知文案
	-邮件标题
    -邮件内容
    
## 3.4 迭代发送邮件通知
	-迭代的使用
    -发送邮件插件使用
    -配置自己邮箱[qq邮箱,163邮箱],能够用代码发送邮件
    
## 3.5 结束

# 4 企业微信通知分支:设定好了群,可以动态发
## 4.1 大模型生成企业微信通知文案

## 4.2 插件发送企业微信群通知
	-dify有插件
    -钉钉:也有
    -飞书:没有
    -一些没有的:公司内部聊天工具
    	-需要大家会代码
        -跟使用postman调用一样,用代码实现
## 4.3 结束    

2 开始节点

#1 输入【使用dify,coze,没有的功能,我们只能退而求其次】
	1 subject 主题--》必填 --》字符串
    2 type    选项--》必填--》下拉选择
    3 excel   收件人邮箱--》选填--》excel文件

image-20251121162113240

image-20251121162126104

image-20251121161945946

3 条件分支

# 1 按如下条件
	如果【if】 用户选择type是邮件通知---》走邮件通知分支
    如果【else-if】 用户选择type是企业微信群通知---》走企业微信群通知
    其他情况【else】,两者都走

image-20251123211340169

4 邮件发送分支

4.1 文档提取器[coze中使用插件实现]

# 1 输入变量
	开始节点传入的 excel 文件

image-20251123211556033

4.2 代码处理数据

# 1 文档提取器提取出来的内容是字符串类型--》转成列表--》给后续循环使用
# 字符串类型
'''
343522281@qq.com
390758362@qq.com
835545402@qq.com
616564099@qq.com



'''
# 列表类型
[
    "343522281@qq.com",
    "390758362@qq.com",
    "835545402@qq.com",
   	"616564099@qq.com",
]

# 2 代码
def main(arg1: str):
    # 把字符串中的 | 替换为空
    # 把字符串中的  替换为空
    # 把字符串中的 \ 替换为空
    # 把字符串中的 - 替换为空
    # split 把字符串,转成列表
    emils=arg1.replace('|','').replace(' ','').replace('\\','').replace('-','').split('\n')
    emil_list = [item for item in emils if item] #把列表中空行去掉

    return {
        "result": emil_list,
    }

# 3 注意配置输出类型
	-Array[String]

image-20251123212234794

image-20251123213156913

image-20251123220037939

4.3 大模型生成邮件标题和内容

# 1  模型作用
	-根据用户输入的主题--》生成邮件标题和邮件内容
    -我们用哪个大模型,都可以
    	-本地可能不如收费的效果好
        -如果大家用的模型跟我有差别,生成的文案可能有插件
        
    -老师用的是:豆包--》之前配的
    
# 2 上下文
	开始--》subject
    
    
# 3 提示词:可以去coze-创建一个类似的工作流-->让它自动生成提示词--》我们微微调整一下

# 角色
你是一个专业的邮件生成专家,能够依据用户给出的主题{{#1763902457613.subject#}},精准且高效地生成恰当的邮件标题和丰富的邮件内容。

## 技能
### 技能 1: 生成邮件标题和内容
1. 当用户输入邮件主题后,分析主题的核心要点。
2. 根据主题要点,结合邮件的正式程度、受众对象等因素,生成一个简洁明了、吸引收件人的邮件标题。
3. 围绕主题,展开丰富的内容阐述,内容应逻辑清晰、表达流畅,涵盖与主题相关的必要信息。
### 技能 2: 输出json格式
1.以json形式输出,邮件标题为:title,邮件内容为:content

## 限制:
- 仅围绕用户输入的主题生成邮件标题和内容,不回答与邮件生成无关的问题。
- 生成的邮件标题应简洁,一般不超过30字;邮件内容应完整且符合逻辑,字数无严格上限,但需表达清晰。
- 所生成的内容需符合正常邮件的表达规范。 
    
    
    
# 4 输出变量
    -【点结构化输出】:json格式  [json格式开发中非常重要的格式]
    	{name:lqz,age:18}  [刘亦菲,迪丽热巴]
    

image-20251123215554836

image-20251123215635931

4.4 迭代

# 1 前面代码输出了 列表---》迭代这个列表,一个个发送邮件
[
    "343522281@qq.com",
    "390758362@qq.com",
    "835545402@qq.com",
   	"616564099@qq.com",
]

# 2 输入变量
	-代码的输出:代码输出注意是列表类型
    
    
# 3 输出
	-发送邮件的text

image-20251123221739031

4.4.1 发送邮件

# 1 工具---》就是coze的插件
	-搜电子邮件
    -这个地址:https://marketplace.dify.ai/plugins/langgenius/email?source=http%253A%252F%252F192.168.23.145&language=zh-Hans&theme=system
        
# 2 添加到节点中--》发送邮件

# 3 配置发送邮件 API key授权---》如下图,换成自己的
	-凭据名称:demo
    -邮件账号:自己的账号
    -邮件密码:在对应邮箱平台开启服务,如下图qq邮箱:kvxiogzwsosfbhib
    -加密方式:SSL加密
    -端口:465
    -发信smtp服务器端口:smtp.qq.com
    -发件人地址:自己的账号
    
    
    
# 4 设置发送邮件
	收件人邮箱账号--迭代item
    邮件主题
    邮件内容

image-20251123220247303

image-20251123220339465

image-20251123220432049

image-20251123220529545

image-20251123221506880

image-20251123221640084

4.4.2 开启自己的邮箱

# 1 以qq邮箱为例--》网站上打开  POP3/IMAP/SMTP/CardDAV/CalDAV 服务
	-这个邮箱,是发件人
    -别人收到邮件,显示是这个邮箱发送的
# 2 生成授权码:不同邮箱不一样:qq是要发送短信,163 要下载app授权
	-osmxtuajibcfbhbe  # 不要泄露,相当于邮箱密码
    -306334678@qq.com   osmxtuajibcfbhbe # 不要乱用
# 3 qq或163如下图

qq邮箱

image-20251123220955354

image-20251123221102694

163邮箱

image-20251121164708375

image-20251121164749654

image-20251121164823320

邮箱配置

邮箱提供商 SMTP 服务器 端口(TLS) 端口(SSL)
Gmail smtp.gmail.com 587 465
Outlook/Hotmail smtp.office365.com 587 465
QQ 邮箱 smtp.qq.com 587 465
163 邮箱 smtp.163.com 25 465
Yahoo smtp.mail.yahoo.com 587 465

注意:

Gmail 需要开启“允许低安全性应用访问”,或者使用应用专用密码(App Password)。

QQ 邮箱和 163 邮箱 需要在设置里开启 SMTP服务 并获取授权码,作为 EMAIL_PASSWORD。

企业邮箱 可能需要不同的 SMTP 服务器地址,请查阅官方文档。

4.4.3 迭代的并发模式

# 1 我开启了3个意思是
	-刚开始,就立马给3个人发送
    -3个人发送完,又给3个人发
    -效率高
    
# 2 如果不开启
	刚开始,就立马给1个人发送
    1个人发送完,又给1个人发
    效率低

4.5 结束

image-20251123221926967

5 微信群通知分支

5.1 大模型-生成文案

# 1 模型
	豆包
    
# 2 上下文:subject


# 3 提示词
# 角色
你是一个专业的微信群通知生成专家,能依据用户给出的主题,快速且精准地生成100字以内恰当的群通知。

## 技能
### 技能 1: 生成群通知
1. 当用户输入群通知主题后,分析主题的核心要点。
2. 根据主题要点,结合群的性质、受众对象等因素,生成简洁明了、重点突出的群通知。
### 技能 2: 输出json格式
1.以json形式输出,通知内容为:content

## 限制:
- 仅围绕用户输入的主题生成群通知,不回答与群通知生成无关的问题。
- 生成的群通知应简洁,不超过100字;内容需完整且符合逻辑,表达清晰。
- 所生成的内容需符合正常群通知的表达规范。 

# 4 输出变量,结构化输出
    -content # 需要配置

image-20251123222707403

5.2 企业微信发送

# 1 工具搜索插件
	-企业微信
	-https://marketplace.dify.ai/plugins/langgenius/wecom?source=http%253A%252F%252F192.168.23.145&language=zh-Hans&theme=system
        
# 2 在企业微信群中,创建一个机器人
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=46cd47dd-1836-4a78-bfeb-c22d9423f6f9
# 3 添加插件
	-填入输入变量:上一个大模型的输出content
    -填入key:46cd47dd-1836-4a78-bfeb-c22d9423f6f9
    -选择文本形式

image-20251123222822026

image-20251123223538387

5.2.1 企业微信群创建机器人

# 1 下载登录企业微信
# 2 有个群[没有就创建一个,必须超过3个人]

# 3 创建微信机器人
	-发布到企业
# 4 复制出webhook地址
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=46cd47dd-1836-4a78-bfeb-c22d9423f6f9

image-20251123223134062

image-20251123223247077

image-20251123223333726

5.3 结束

image-20251123223700107

6 两者都发送分支

# 1 如果low一些,重新走一条线
	-能发邮件和群通知
    
# 2 高级一些:因为都走,两条线连过去
	else的情况,直接链接其他两个分支
posted @ 2025-11-25 08:47  凫弥  阅读(30)  评论(0)    收藏  举报