微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Powershell:无法使用 ControlM 发送电子邮件

如何解决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 "& { ; exit $lastexitcode }"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。