我运行了以下脚本:
PS C:\> Send-MailMessage -To <EmailAddress1> -From <EmailAddress2> -Body "This is a test" -Subject "TEST MAIL" -SmtpServer <INTERNAL IP OF SMTP SERVER>
我收到以下错误:
Send-MailMessage : Unable to read data from the transport connection: net_io_connectionclosed.
At line:1 char:17
+ Send-MailMessage <<<< -To <EmailAddress1> -From <EmailAddress2> -Body "This is a test" -Subject "TEST MAIL" -SmtpServer <INTERNAL IP OF SMTP SERVER>
+ CategoryInfo: InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-Mail Message], SmtpException
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage`
我意识到我需要通过SMTP服务器从本地计算机发送电子邮件的权限,据我所知,我已被授予这些权利。
有人请帮助我指出这个方向的正确方向吗?
最终目标是能够将电子邮件作为一些Powershell脚本的一部分发送。
谢谢!
答案 0 :(得分:2)
我更喜欢发送电子邮件的Net.Mail.SmtpClient方法。该脚本将发送作为参数传递的文件的内容。
$emailFrom = "AUTOMATED_PRERUN@somehost.com"
$emailTo = "somebody@somehost.com"
$subject = "TEST"
get-content $Args[0] | %{$Body+= " {0} `n" -f $_}
$smtpServer = "mailserver.somehost.com"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
尽管如此,您的错误听起来更像某种类型的网络问题。
您可能想要检查是否可以访问服务器上的smtp端口:
http://support.microsoft.com/kb/153119
答案 1 :(得分:2)
可能您的防病毒文件服务正在锁定邮件传递。