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

Windows PowerShell调用Send-MailMessage时SMTP安全连接及认证报错求助

解决PowerShell Send-MailMessage的SMTP认证/安全连接错误

这个5.5.1 Authentication Required错误,本质是你的脚本没满足SMTP服务器的两个核心要求:安全加密连接和有效身份认证。下面是针对性的解决步骤,尤其适配你提到的类似Gmail这类主流邮箱场景:

核心修复操作

1. 强制启用SSL/TLS加密

现在几乎所有正规SMTP服务器都要求加密传输,所以必须在参数里加上-UseSsl,同时匹配正确的加密端口:

  • 优先用587端口(TLS加密,是当前主流标准);部分老服务器可能支持465端口(SSL加密)

2. 传递合法的认证凭据

不能只填写发件人邮箱地址,必须明确提供登录凭据。建议用PSCredential对象安全存储密码:

# 替换为你的邮箱和密码(Gmail开了2FA的话,要用「应用专用密码」)
$MyEmail = "your-email@gmail.com"
$SecurePassword = ConvertTo-SecureString "your-app-password-or-regular-password" -AsPlainText -Force
$EmailCredential = New-Object System.Management.Automation.PSCredential ($MyEmail, $SecurePassword)

3. 完整可运行的示例脚本

把参数整合到你的哈希表中,最终代码参考如下:

$MyEmail = "your-email@gmail.com"
$SecurePassword = ConvertTo-SecureString "your-app-specific-password" -AsPlainText -Force
$EmailCredential = New-Object System.Management.Automation.PSCredential ($MyEmail, $SecurePassword)

$EmailSplat = @{
    To          = "recipient@example.com"
    From        = $MyEmail
    Subject     = "Test Email via PowerShell"
    Body        = "这封邮件应该能正常发送,不会再触发认证错误了!"
    SmtpServer  = "smtp.gmail.com" # 替换成你的SMTP服务器地址,比如Outlook用smtp.office365.com
    Port        = 587
    UseSsl      = $true
    Credential  = $EmailCredential
}

Send-MailMessage @EmailSplat

针对Gmail用户的额外提醒

如果你用的是Gmail邮箱,还需要注意两个关键点:

  • 开启**两步验证(2FA)**的用户:绝对不能用普通登录密码,必须去Google账号管理页创建一个「应用专用密码」(专门给脚本/第三方应用使用的独立密码,和主密码无关)
  • 未开启2FA的用户:可能需要在Google账号设置中开启「不太安全的应用访问」(不过这个功能已逐步淘汰,优先推荐使用应用专用密码)

其他排查方向

  • 确认SMTP服务器地址是否正确:比如QQ邮箱用smtp.qq.com,企业Exchange邮箱通常用smtp.office365.com
  • 检查账号是否因多次错误登录被临时锁定
  • 企业邮箱用户可能需要联系管理员,确认是否开启了SMTP发送权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:23:14