必须先保存为“导出查询”,否则邮件附件为空;正确流程是写查询→点导出→选excel/csv→勾选文本限定符和utf-8 with bom→用全英文绝对路径保存;批处理中须手动点击回形针图标添加附件,且仅对已保存的导出查询生效。

必须先保存为「导出查询」,否则邮件附件永远为空——这是最常被跳过的致命步骤。
导出查询没保存,附件就一定是空的
Navicat 的「自动运行」不识别未保存的原始查询。哪怕你写了完美的 SELECT * FROM sales WHERE date = CURDATE(),只要没走「导出 → 下一步 → 保存」流程,批处理作业里拖进去的就只是个空壳任务。
- 正确路径:写好查询 → 点右上角
导出按钮 → 选Excel 文件或CSV 文件(PDF/HTML 不支持附件)→ 勾选使用文本限定符、编码选UTF-8 with BOM→ 最后一步点保存 - 文件名必须全英文、无空格、用绝对路径(例如
C:\navicat_exports\),含中文或桌面路径容易导致附件加载失败 - 文件名可加占位符:
report_<date>.xlsx</date>,Navicat 会自动替换为当天日期
批处理作业里“添加附件”是强制操作,不是可选项
在「自动运行 → 新建批处理作业」中,把刚保存的daily_report_export拖进「已选择的工作」列表后,下方会出现该任务条目——此时必须手动点击那个回形针图标添加附件,否则邮件正文只会说“执行成功”,附件大小恒为 0 KB。
- 这个按钮只对「导出查询」类型生效;普通查询执行或数据传输任务点了也没反应
- 一个批处理作业只能绑定一个附件;要发多张报表,得建多个独立作业
- 如果附件没加载出来,检查导出查询是否真的保存成功(可在「查询」列表里看到同名条目)
SMTP 配置必须用授权码,不是邮箱登录密码
在批处理作业的「高级」页签填邮箱参数时,用户名填发件邮箱地址,密码必须填 SMTP 授权码——这个码在邮箱设置里单独生成,QQ/163/Gmail 都要开 POP3/IMAP 并生成专用密码,且多数只显示一次。
-
smtp.qq.com(端口 465,SSL 开启) -
smtp.163.com(端口 465,SSL 开启) -
smtp.gmail.com(端口 587,TLS 开启) - 测试邮件必须点
测试按钮发送,不能只靠保存判断;失败时错误信息通常是Authentication failed或Connection refused
计划任务依赖系统级服务,不是 Navicat 自身常驻
Navicat 的「自动运行」本质是调用 Windows 任务计划程序 / macOS launchd / Linux cron。这意味着:任务能跑的前提不是 Navicat 是否打开,而是操作系统服务是否就绪、账户权限是否允许创建计划任务。
- Windows 上首次设置需输入管理员密码;macOS 可能弹出钥匙串授权;Linux 需确保当前用户有 cron 权限
- 任务执行日志藏在系统任务计划器里(如 Windows 的「任务计划程序库」),Navicat 界面不提供详细运行痕迹
- 若企业邮箱受限,建议先用个人邮箱验证整个链路跑通再切回工作邮箱
最容易被忽略的是顺序逻辑:批处理作业不校验依赖关系。先拖导出任务、再拖查询任务,结果就是导出时没数据可导——但 Navicat 不报错,只静默生成空文件。











