You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sendemail和sawks通过主流邮箱SMTP发送邮件时AUTH LOGIN认证失败求助

使用sendemail和sawks通过主流邮箱SMTP发送邮件时AUTH LOGIN认证失败求助

哥们,我之前折腾sendemail对接主流邮箱SMTP的时候也踩过一模一样的坑!给你梳理几个大概率能解决的关键点:

1. 主流邮箱的密码认证不是普通密码!

现在Gmail、Yahoo、mail.com这些大厂都收紧了安全策略,普通登录密码根本没法用于SMTP认证,必须用「应用专用密码」:

  • 先给你的邮箱账户开启两步验证(双因素认证),这是生成应用密码的前提;
  • 去邮箱的安全设置里,找到「应用专用密码」的选项,生成一个专门用于SMTP服务的密码,把这个密码填到sendemail/sawks的-xp(或对应配置项)里,而不是你平时登录网页邮箱的密码。

2. 端口和加密方式必须严格对应

别乱试组合,这俩是绑定的:

  • 587端口:必须用STARTTLS加密,sendemail里要加参数 -o tls=yes,不能直接用SSL;
  • 465端口:是SSL/TLS直连加密,sendemail里要加 -o ssl=yes,不需要STARTTLS步骤。
    举个Gmail的正确命令示例:
sendemail -f your@gmail.com -t target@example.com -u "测试邮件" -m "这是测试内容" -s smtp.gmail.com:587 -o tls=yes -xu your@gmail.com -xp 你的应用专用密码

3. 检查账户的SMTP权限和风控状态

  • 去邮箱的设置里,确认「允许第三方SMTP客户端访问」的开关是打开的(有些邮箱默认是关闭的);
  • 登录邮箱的安全中心,看看有没有异常登录记录——如果之前用telnet或者陌生IP尝试过,可能被系统临时限制了,手动解锁一下就行。

4. sawks的配置注意点

如果用sawks的话,要确保配置文件里的认证方式明确指定为LOGIN,同时加密选项和端口匹配:
比如配置片段大概是这样:

set smtp=smtp.gmail.com:587
set smtp-use-starttls
set smtp-auth=login
set smtp-auth-user=your@gmail.com
set smtp-auth-password=你的应用专用密码

之前你用telnet能成功,大概率是当时邮箱还没强制应用密码,或者你用的是老的宽松策略,现在这些大厂都把普通密码的SMTP通道封死了,先试试应用密码,应该能解决90%的问题!

备注:内容来源于stack exchange,提问作者Surepic 342

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:34:40