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

执行Send-MailMessage触发凭据提示,寻求无需认证发邮件方案

解决Send-MailMessage无需认证发送邮件的问题

你现在的代码里踩了个小坑:-Credential $from这行用错啦!$from只是从AD获取到的邮箱字符串,而-Credential参数要求的是PSCredential类型的对象,不是单纯的邮箱地址,这也是系统一直提示你输入凭据的核心原因之一。

要实现无需认证发送邮件,关键是移除不必要的认证参数,同时确保你的SMTP服务器支持匿名中继。下面是修正后的代码:

# 获取当前用户的邮箱地址
$from = (Get-ADUser $env:UserName -Properties emailaddress).emailaddress
$To = "example@example.org"
$Subject = "test2"
$Body = "Test2"
$SMTPServer = "10.98.0.20"
$SMTPPort = 25  # 这里建议用整数类型,比字符串更规范

# 移除-Credential参数,因为我们要匿名发送邮件
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort

额外注意事项

  • 首先得确认你的SMTP服务器(10.98.0.20)是否允许匿名中继。如果服务器本身强制要求认证才能发送,那你就绕不开输入凭据这一步,得联系邮件管理员确认服务器配置。
  • 如果移除-Credential后还是报错,大概率是服务器限制了允许匿名发送的IP范围,需要找管理员确认你的客户端IP是否在白名单里。
  • 端口25是SMTP的默认端口,但有些服务器可能要求用587(STARTTLS)或465(SSL),如果25端口不行,可以试试这两个端口,不过匿名发送通常用25端口就够了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:45:13