根本原因是navicat缺乏有效smtp凭据上下文:windows需管理员权限访问加密存储,macos需钥匙串授权,且端口与加密模式必须严格匹配(如qq邮箱用465+ssl)。

根本原因不是密码填错了,而是 Navicat 没拿到有效的 SMTP 凭据上下文——它不读系统设置,也不缓存登录态,每次调用都依赖当前运行环境的权限与授权状态。
Windows 下必须以管理员身份启动 Navicat 才能通过 SMTP 认证
Navicat 在非管理员权限下无法安全读取或写入加密凭据存储区,导致授权码静默为空。即使你填了正确的 QQ 邮箱授权码,SMTP authentication failed 也会在日志里悄无声息地出现。
- 关闭所有 Navicat 进程(包括后台托盘)
- 右键 Navicat 快捷方式 → “以管理员身份运行”
- 再进入
管理 → 常规设置 → 邮件,重新填写完整配置 - 点击
传送测试邮件前,确认 QQ/163 邮箱已开启 SMTP 服务并生成了应用专用密码(不是登录密码)
macOS 上钥匙串访问未授权是静默失败主因
macOS 默认阻止 Navicat 访问钥匙串中保存的 SMTP 密码,界面不报错,但实际传参为空字符串。
- 打开
钥匙串访问应用 - 搜索关键词
navicat或smtp - 找到对应条目(通常显示为
Navicat SMTP Password)→ 双击 → 切换到访问控制标签页 - 点击
+添加/Applications/Navicat Premium.app,勾选“允许所有应用程序访问此项目” - 重启 Navicat 后重试测试邮件
端口与加密模式不匹配会导致握手直接中断
填对了服务器地址和密码,但用 587 端口配 SSL、或用 465 配 STARTTLS,都会卡在 TLS 握手阶段,错误日志可能只显示 Connection closed by foreign host。
- QQ 邮箱:用
smtp.qq.com:465+ SSL/TLS(不要选 STARTTLS) - 163 邮箱:用
smtp.163.com:465+ SSL/TLS - Gmail:用
smtp.gmail.com:587+ STARTTLS(且必须启用两步验证并生成 App Password) - 可用
nc -zv smtp.qq.com 465或telnet smtp.163.com 465先验证端口连通性
最容易被忽略的是:Navicat 的 SMTP 验证过程不记录详细 TLS 握手日志,一旦失败,你只能靠端口+加密组合硬试。别信“我上次就是这么配的”,升级 Navicat 版本后 TLS 协议栈可能变更,老配置会突然失效。











