必须完成smtp服务集成与通知策略配置,否则关键邮件功能(如邀请、密码重置)将静默失败;需获取邮箱授权码、修改.env中mail_type、smtp_server等参数、重启服务,并在后台开启对应事件通知开关。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 Dify 中实现关键事件自动告警、用户邀请、密码重置等依赖邮件的功能,必须完成 SMTP 服务集成与通知策略配置。这一步不可跳过,否则所有依赖邮件的系统行为(如成员邀请链接生成、密码找回验证码发送)将直接失败,且后台无明确报错提示,仅表现为“操作无响应”或“邮件未送达”。
获取并验证邮箱 SMTP 授权码
登录你要用作发件人的邮箱网页版(163、QQ、阿里云企业邮箱均可),进入安全设置页开启 SMTP 服务并生成授权码——这不是登录密码,而是独立生成的、仅用于第三方应用发信的密钥。
以 163 邮箱为例:设置 → POP3/SMTP/IMAP → 开启 SMTP 服务 → 手机号验证 → 获取 16 位授权码;【该码仅显示一次,关闭页面即不可再查,务必立即复制保存】。
QQ 邮箱路径略有不同:设置 → 账号 → “账户安全”区域找到“开启 IMAP/SMTP 服务” → 生成授权码;阿里云企业邮箱则需在管理后台“邮箱设置”→“客户端设置”中启用 SMTP 并查看对应密码字段。
注意:Gmail 用户必须使用“应用专用密码”,且需先在 Google 账户中开启两步验证才能生成。
修改 Dify 环境变量配置 SMTP
进入 Dify 安装目录下的 dify/docker/ 子目录,编辑 .env 文件:
第一步:确认 MAIL_TYPE=smtp 已启用;
第二步:填写发件人地址:MAIL_DEFAULT_SEND_FROM=yourname@163.com(必须与 SMTP_USERNAME 一致);
第三步:填入服务器参数:SMTP_SERVER=smtp.163.com、SMTP_PORT=465(163 强制 SSL)、SMTP_USERNAME=yourname@163.com、SMTP_PASSWORD=你刚复制的16位授权码;
第四步:启用加密传输:SMTP_USE_TLS=true,同时设 SMTP_OPPORTUNISTIC_TLS=false(避免 TLS 协商失败导致静默丢信);
【修改后必须重启服务,否则配置不生效:执行 docker compose down && docker compose up -d】。
测试邮件是否可正常投递
方法一:Dify 后台触发测试邮件
进入 Dify 管理后台 → 系统设置 → 通知设置 → 邮件服务 → 点击「发送测试邮件」按钮;若收件箱 30 秒内收到,说明 SMTP 连通性与认证均通过。
方法二:查看 worker 日志定位失败原因
运行 docker logs -f dify-worker-1,观察日志中是否出现类似 Send invite member mail to xxx@qq.com succeeded 的成功标记;若出现 Authentication failed 或 Connection refused,则分别检查授权码是否过期、端口是否被防火墙拦截。
方法三:命令行直连验证(Linux/macOS)
执行 openssl s_client -connect smtp.163.com:465 -crlf,若返回证书信息及 220 响应码,证明服务器可达;再手动输入 HELO example.com 和 AUTH LOGIN 测试基础协议握手能力。
配置关键事件邮件通知开关
系统级通知(如任务失败、权限变更)默认关闭,需手动开启:
① 进入「系统设置」→「通知设置」→「事件通知」;
② 勾选需要告警的事件类型,例如「应用发布失败」「数据集同步异常」「成员邀请发送」;
③ 为每类事件指定接收邮箱组(支持输入多个邮箱,用英文逗号分隔);
④ 点击「保存设置」,此时所有已启用的事件将在触发时自动调用 SMTP 发送告警邮件。
工作流节点级邮件(如智能体自动发信)需单独在工作流中添加「SMTP 邮件发送」插件节点,并填写收件人、主题、正文等字段——此方式不走全局通知通道,不受上述开关控制。










