Navicat邮件通知需先配置全局SMTP账户且仅支持单账户复用,测试邮件失败多因未提权启动或系统凭据授权问题;计划任务中仅Backup/Restore/Synchronize/Export四类支持通知,须在任务属性中启用;主题支持[TaskName][Status][DateTime]动态占位符,正文不支持变量;邮件为异步发送,失败无告警,需查自动运行日志。
navicat 本身不内置 smtp 邮件发送引擎,所谓“邮件通知”实际是调用系统级邮件账户配置 + 任务执行后触发的邮件投递动作,必须先在 navicat 全局设置中完成邮件账户配置,否则计划任务里的通知选项根本不会生效。
为什么点击“传送测试邮件”失败或无响应
这是最常卡住的第一步。失败不是因为邮箱填错了,而是 Navicat 的邮件功能依赖底层系统账户注册,且仅支持单 SMTP 账户全局复用:
- 必须进入
管理 → 常规设置 → 邮件,完整填写 SMTP 服务器(如smtp.163.com)、端口(465或587)、发件人地址、授权码(不是登录密码!QQ/163 需单独开启并生成) - 测试前务必关闭所有 Navicat 实例,重新以管理员身份启动——Windows 下若未提权,
SMTP authentication failed错误会静默吞掉提示 - macOS 用户注意:系统钥匙串可能拦截密码访问,需手动授权 Navicat 访问钥匙串中的 SMTP 凭据
计划任务里“邮件通知”开关为何灰色不可选
该选项被禁用,说明当前批处理作业中尚未包含任何可触发通知的“结果感知型”任务:
- 只有
Backup、Restore、Synchronize、Export这四类任务才支持绑定通知;纯Query或Import不行 - 必须在批处理作业编辑界面中,右键已添加的任务 → 选择
属性→ 勾选发送邮件通知,而不是在计划设置页勾选 - 若使用 Navicat Premium 16+,还需确认任务属性里的
通知条件设为所有成功操作或所有失败操作,默认是关闭状态
邮件内容里如何动态插入备份时间、数据库名等变量
Navicat 不支持类似 ${backup_time} 的模板语法,但可通过邮件主题和正文中的固定占位符实现基础动态化:
- 主题栏支持:
[TaskName] [Status] at [DateTime]—— 实际发送时会自动替换为真实值,如[MySQL_Backup] Success at 2026-04-27 04:00 - 正文无法插入变量,只能写死;若需详细日志,必须勾选任务属性中的
保存运行日志到文件,再配合外部脚本读取日志发邮件 - 多个收件人用英文逗号分隔,如
admin@company.com,dba@company.com;此处填写的地址优先级高于全局邮件设置里的发件人
真正容易被忽略的是:Navicat 的邮件通知本质是“异步回调”,它不校验收件箱是否可达,也不重试失败投递。一旦 SMTP 配置有毫秒级延迟或临时拒绝,你就收不到任何失败告警——这意味着你得定期检查 管理 → 日志 → 自动运行日志 里的 Mail sent: false 记录,而不是只盯邮箱收件箱。


















