使用Powershell Windows 7发送邮件

时间:2013-09-05 11:50:33

标签: email powershell

我无法在带有PowerShell 2的Windows 7客户端上使用它

 $smtpServer = "smtp.example.com"
 $msg = new-object Net.Mail.MailMessage
 $smtp = new-object Net.Mail.SmtpClient($smtpServer)
 $msg.From = "fromID@example.com"
 $msg.ReplyTo = "replyto@example.com"
 $msg.To.Add("toID@example.com")
 $msg.subject = "My Subject"
 $msg.body = "This is the email Body."
 $smtp.Send($msg)

我收到的例外情况是"异常调用"发送" 1"参数"失败发送邮件" 任何人都有任何想法? 我已经尝试过Send-MailMessage,但它也失败了,如果我在基于服务器的Windows上运行该命令它执行正常。 我使用相同的帐户进行程序。

3 个答案:

答案 0 :(得分:2)

这可能是由于很多原因造成的,但是我看到这个完全相同的错误的一个问题是因为反病毒程序阻止Powershell发送电子邮件。通过查看防病毒日志来检查是否是这种情况。

除此之外,你可能想检查防火墙是否正常,你可以连接到SMTP服务器等。

答案 1 :(得分:1)

这可能有效:

$ol = New-Object -comObject Outlook.Application 
$mail = $ol.CreateItem(0) 
$Mail.Recipients.Add("XXX@YYY.ZZZ") 
$Mail.Subject = "PS1 Script TestMail" 
$Mail.Body = "Test Mail"
$Mail.Send() 

# you can use this for HTML-Mails 
# $Mail.HTMLBody = "<HTML><HEAD>Text<B>BOLD</B>  <span style='color:#E36C0A'>Color Text</span></HEAD></HTML>" 
# you can use this for attache a file 
# $Mail.Attachments.Add("D:\scripte\ol.txt")

进一步reference

答案 2 :(得分:0)

将端口更改为25可以,但为什么?