必须先保存为“导出查询”,否则邮件附件永远为空;正确路径是写好查询→点导出按钮→选excel/csv→勾选文本限定符、utf-8 with bom→用全英文绝对路径保存;批处理中须手动点击回形针图标添加附件,且仅对已保存的导出查询生效。
必须先保存为“导出查询”,否则邮件附件永远为空——这是最常被跳过的致命步骤。
导出查询必须单独保存,不能只执行 SQL
Navicat 的「自动运行」不识别未保存的原始查询。哪怕你写了完美的 SELECT * FROM sales WHERE date = CURDATE(),只要没走「导出 → 下一步 → 保存」流程,批处理作业里拖进去的就只是个空壳任务。
- 正确路径:写好查询 → 点右上角
导出按钮 → 选Excel 文件或CSV 文件(PDF/HTML 不支持附件)→ 勾选使用文本限定符、编码选UTF-8 with BOM→ 最后一步点保存,命名如daily_report_export - 保存时路径必须全英文、无空格、用绝对路径(例如
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 用户需确认服务
NavicatAutoRun处于运行状态(可用 PowerShell 执行Get-Service -Name "NavicatAutoRun"查看) - 电脑休眠、睡眠或锁屏时,Windows 默认会跳过计划任务;需在任务计划程序里勾选
唤醒此计算机以运行此任务 - 首次设置后建议等一个完整周期(比如设了每天 9:00,就等到第二天 9:01 后查收邮件并翻看日志)
最容易被忽略的是导出查询的保存动作和附件绑定操作——这两步缺失,整个流程就只剩一封干巴巴的成功通知。别信“我点过导出了”,要看「查询」列表里有没有那个名字,以及批处理作业里有没有回形针图标亮起。











