Windows Server 2016中PowerShell Send-MailMessage报5.7.60错误求助
Windows Server 2016下Send-MailMessage权限报错问题
执行代码
Send-MailMessage -From 'datacompare@domainname.com' ` -To 'qm@domainname.com' ` -Subject 'Test mail' -SmtpServer smtp5.domain.com ` -Body 'this is a test'
错误信息
Mailbox unavailable. The server response was: 5.7.60 SMTP; Client does not have permissions to send as this sender
At line:1 char:1
已完成排查
- 该代码在个人电脑上执行正常;
- 在另一台Windows Server 2016环境中执行正常;
- 排查TLS/SSL协议问题,对比两台Server均启用SSL 2.0,添加
[System.Net.ServicePointManager]::SecurityProtocol = 'Tls,TLS11,TLS12'后仍报错; - 查阅在线排查指南未解决问题。
建议解决方向
- 确认当前Server执行PowerShell的账户权限:检查该账户是否被SMTP服务器允许以
datacompare@domainname.com身份发件,正常运行的设备可能使用了拥有该权限的账户; - 检查SMTP服务器的发件人限制:登录SMTP服务器管理后台,查看
datacompare@domainname.com的发件权限配置,确认是否允许当前Server的IP地址或执行账户发送邮件; - 尝试指定认证账户:在命令中添加
-Credential参数,使用有权限发送该邮箱的账户凭证,示例代码:
$credential = Get-Credential Send-MailMessage -From 'datacompare@domainname.com' ` -To 'qm@domainname.com' ` -Subject 'Test mail' -SmtpServer smtp5.domain.com ` -Body 'this is a test' -Credential $credential
- 对比账户组权限:将当前Server的执行账户与正常运行设备的账户所属组对比,排查是否存在权限组缺失的情况。
内容的提问来源于stack exchange,提问作者QMo
相关产品推荐
相关产品推荐

