无法使用Powershell发送电子邮件

时间:2012-03-21 15:09:41

标签: email powershell exchange-server

我运行了以下脚本:

  

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脚本的一部分发送。

谢谢!

2 个答案:

答案 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)

可能您的防病毒文件服务正在锁定邮件传递。