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

PowerShell Send-MailMessage认证异常求助:SMTP 5.7.0错误排查

解决PowerShell发送Gmail邮件的SMTP认证错误

问题分析

你的脚本执行时抛出的5.7.0 Authentication Required错误,核心原因是Google当前的安全策略不再允许使用账号原密码通过SMTP服务登录,必须通过两步验证+应用专用密码的方式完成认证。

解决步骤

  • 第一步:开启Google账号两步验证
    登录你的Google账号,进入账号安全设置,找到「两步验证」选项并开启,按照引导完成验证方式绑定(比如手机号验证)。

  • 第二步:生成应用专用密码
    开启两步验证后,回到安全设置页面,找到「应用专用密码」选项:

    1. 选择应用类型为「邮件」,设备类型选「其他(自定义名称)」,比如输入「PowerShell邮件脚本」
    2. 点击生成,系统会给出一个16位无空格的密码,保存好这个密码。
  • 第三步:修正脚本细节
    你的脚本中有个小问题:$SMTPPort被定义为字符串类型,需改为数字类型;同时执行脚本时,Get-Credential弹窗里输入的用户名是发件邮箱powershell121@gmail.com,密码填刚才生成的16位应用专用密码(不是你的Google账号原密码)。修正后的脚本如下:

    $Sender = "powershell121@gmail.com" 
    $Reciever = "powershell122@gmail.com" 
    $Subject = "testing script" 
    $Body = " this is a mail sender powershell script , from me to me  " 
    $SMTPServer = "smtp.gmail.com" 
    $SMTPPort = 587  # 去掉引号,改为数字类型
    Send-MailMessage -From $Sender -to $Reciever -Subject $Subject -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential (Get-Credential)
    

补充说明

Google在2022年已停止支持「不太安全的应用」登录,不要尝试通过开启该选项解决问题,必须使用两步验证+应用专用密码的方案。如果使用PowerShell 7及以上版本,可考虑使用Send-MgMail(基于Microsoft Graph API)替代Send-MailMessage,但配置相对复杂。

内容的提问来源于stack exchange,提问作者1Zixo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:40:31