Navicat 数据同步任务本身不支持邮件通知,必须封装进批处理作业并启用“发送邮件通知”选项,且全局SMTP配置、.sync文件保存、日志记录等环节缺一不可;邮件主题支持[TaskName][Status][DateTime]变量,正文为静态文本,失败时可能因进程崩溃而无邮件发出。

Navicat 数据同步任务本身不支持邮件通知
你无法在「工具 → 数据同步」向导界面或同步配置文件(.sync)里找到任何邮件开关。Navicat 的邮件通知能力仅绑定在四类批处理作业任务上:Backup、Restore、Synchronize、Export——注意,这里的 Synchronize 指的是「批处理作业中添加的『数据同步』类型工作」,不是独立打开的同步向导窗口。单独运行一次同步操作,不会触发任何通知逻辑。
必须把同步封装进批处理作业才能启用邮件
要让数据同步具备邮件能力,得走「自动运行 → 批处理作业」路径:
- 先完成一次数据同步配置,并点击「保存配置文件」,得到一个
xxx.sync文件(路径需全英文、无空格) - 新建批处理作业 → 点击「添加任务」→ 选择「Synchronize」→ 浏览并加载刚保存的
xxx.sync - 右键该任务 → 「属性」→ 勾选「发送邮件通知」→ 设置通知条件(如「所有成功操作」或「所有失败操作」)
- 确保全局邮件已配置(管理 → 常规设置 → 邮件),且测试邮件能发出去
漏掉任一环,比如没保存 .sync、没在批处理里勾选通知、或全局 SMTP 未启用,都会导致邮件静默失效。
邮件内容动态变量只支持主题栏,正文是纯静态文本
Navicat 允许你在邮件主题中使用占位符,但仅限于主题栏;正文不解析任何变量:
- 合法主题示例:
[TaskName] [Status] at [DateTime]→ 实际发送为MySQL_to_PG_Sync Success at 2026-09-07 12:30 - 正文只能写死,比如“同步已完成,请检查目标库订单表记录数”
- 若需详细执行日志,必须在任务属性中勾选「保存运行日志到文件」,再配合外部脚本读取该日志并附在邮件正文中(Navicat 自身不提供此能力)
很多人误以为正文也能插值,结果收到的邮件永远是模板化的一句话,查不到失败原因。
同步失败时邮件可能根本不会发出
Navicat 的邮件通知是异步回调,不校验收件人可达性,也不重试失败投递。更关键的是:如果同步任务因连接超时、权限拒绝、表结构不匹配等底层错误直接崩溃退出,批处理引擎可能来不及触发邮件模块。
- 验证是否真执行了同步:查 Windows 任务计划程序的「上次运行结果」(非 0x0 才算启动成功)
- 确认 Navicat debug 日志是否开启(
DebugLog=1+LogLevel=3),否则失败时只有「失败」二字,无 SQL、无堆栈、无超时点 - 真正容易被忽略的是:邮件通知依赖批处理作业的「正常退出流程」;而很多同步异常会导致进程提前终止,跳过通知阶段











