如何解决Powershell:无法使用 ControlM 发送电子邮件
我可以在盒子上从命令行运行以下示例脚本,但在尝试从 controlm 运行相同脚本时遇到问题。
# mailtest.ps1
$cmd='Send-MailMessage -Body "body" -To "to@abc.com" -From "from@abc.com" -Subject "subject" -SmtpServer "smtpserver.net" -Port 25
Invoke-Expression $cmd
命令行 - 工作正常:
powershell -Nologo -NonInteractive -File mailtest.ps1
ControlM - 错误:
powershell -Nologo -NonInteractive -File mailtest.ps1
Send-MailMessage : Unable to read date from the transport connection: net_io_connectionclosed
...
+ FullyQualifiedErrorId : SmtpException,Microsoft.Powershell.Commands.SendMailMessage
网络在防火墙后面,但我认为这不是问题,因为邮件是从命令行发送的,没有任何问题。
到目前为止我尝试过的:
- 已为 TLS 1.0、1.1、1.2 和 SSL 2.0、3.0 启用客户端/服务器
- 尝试了端口号 - 25、587 和 465 - 它们都无法在 controlM 中工作
- 也尝试使用 -noprofile 和 Bypass 参数进行调用
解决方法
这似乎不是 Control-M 问题(尽管由于 Windows 的限制性,通过 Control-M 运行 PowerShell 脚本可能会出现问题)。
Control-M 脚本是否在您运行手动命令行所在的同一代理上启动?
作为测试,我建议检查 SMTP 服务器属性并将 IP 地址设置为“所有未签名”,看看是否可以解决问题。
回到 Control-M 端,推荐的启动 PowerShell 脚本的方法是有一个指向 ps1 的 cmd 文件 -
powershell -command "& {
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。