
remove logo feature not work in human input email notification
快速结论:在 Dify 工作流中配置了人工审批节点(Human Input)并发送邮件通知时,即使开启了去除品牌 Logo 的开关(remove_webapp_brand),收到的邮件中依然会显示 Dify Logo。这个问题是由于人工审批节点的邮件发送走了独立的邮件管道,没有检查用户的品牌设置。
问题场景
在 Dify 工作流中配置了人工审批节点(Human Input Node),并通过该节点发送邮件通知,同时在应用设置中开启了”去除品牌 Logo”(remove logo)功能。用户预期收到不包含 Dify Logo 的纯内容邮件,但实际邮件底部仍然显示了品牌 Logo。
报错原文
这不是一个运行时错误,而是预期行为与实际行为不符。核心逻辑缺失点位于以下代码路径:
dispatch_human_input_email_task 函数
- 路径:api/tasks/mail_human_input_delivery_task.py
- 行为:直接将用户配置的 Markdown 内容渲染为 HTML 后,通过 mail.send() 发送
- 缺少:未读取租户的 remove_webapp_brand 配置
对比系统邮件(例如密码重置、邀请邮件):
- 路径:api/libs/email_i18n.py (EmailI18nService)
- 行为:根据 remove_webapp_brand 标志选择带品牌/无品牌的模板集
- 存在:并行维护了带品牌和无品牌的邮件模板
原因分析
这是一个架构层面的设计缺失。系统邮件(如密码重置、邀请通知等)通过 EmailI18nService 层处理,该服务会根据租户的 custom_config 中 remove_webapp_brand 标志选择对应模板——分为带品牌和无品牌两套模板。然而,人工审批节点的邮件通知走的是完全不同的邮件管道:
- 直接发送:
dispatch_human_input_email_task函数直接将用户配置的 Markdown 内容渲染为 HTML 后,调用mail.send()发送邮件。 - 跳过品牌检查: 该流程根本没有读取租户的
custom_config,也没有检查remove_webapp_brand标志。 - 不使用模板: 人工审批邮件完全不使用任何模板文件,直接传递用户渲染后的内容,因此无法应用品牌/无品牌模板切换逻辑。
环境排查
- Dify 版本:1.14.2(该问题被确认的版本)
- 部署方式:Self Hosted (Docker)
- 受影响功能:工作流 → 人工审批节点 → 发送邮件通知
- 相关代码文件:
api/tasks/mail_human_input_delivery_task.pyapi/core/workflow/human_input_adapter.pyapi/libs/email_i18n.pyapi/extensions/ext_mail.pyapi/models/account.py
解决步骤
注意:以下解决方案基于 Issue 中开发者的分析,属于修复方向,尚未提供具体的补丁。在官方修复发布之前,可以按以下思路进行手动修复或等待更新。
- 获取租户配置:修改
dispatch_human_input_email_task函数,在发送邮件前从custom_config中读取当前租户的remove_webapp_brand设置。相关代码参考api/models/account.py中的配置获取逻辑。 - 路由到品牌感知层:根据
remove_webapp_brand的值,将邮件内容路由到现有的EmailI18nService进行模板选择,或者将用户配置的内容包裹到带品牌/无品牌的模板中。具体做法是:- 如果
remove_webapp_brand = True,则移除 Dify Logo 相关 HTML。 - 如果
remove_webapp_brand = False(默认值),则保留现有行为(带 Logo)。
- 如果
- 修改发送链路:确保
mail.send()调用之前,邮件内容已经过品牌处理,而不是直接传递用户渲染后的原始 HTML。
可优先尝试的临时方案:如果你熟悉 Dify 的代码,可以手动修改 api/tasks/mail_human_input_delivery_task.py,在发送邮件前获取租户配置并移除 Logo。但请注意,这需要自行维护代码,官方更新后可能会覆盖。
验证方法
修复前:在工作流中配置人工审批节点并触发邮件通知,收到的邮件底部显示 Dify Logo。
修复后:重新触发同样的工作流,发送的邮件底部不应再包含 Dify Logo 及相关品牌元素。检查邮件 HTML 源代码,确保没有 <img> 标签引用 Dify Logo 图片。



