使用PowerShell通过Smtp发送邮件
2010-06-09 18:03 @天行健中国元素 阅读(5170) 评论(0) 编辑 收藏 举报借助.NET框架,使PowerShell具有强大的自动化功能,PowrShell可通过Smtp发送邮件,以下是代码:
$comments = @' author:fuhj(powershell@live.cn ,http://txj.shell.tor.hu) example: send-mail -toAddress user@domain.com -subject "Powershell Testing Mail " -body "This is a test mail form powershell" -file "C:\powershellmailfile.txt" -toName -body and -file are all optional. use double quotes for the name parameters ie; -body "Proper Content" '@ function send-mail{ param( [string]$toAddress = $(throw "toAddress must be set") ,[string]$Subject = $(throw "subject must be set") ,[string]$body = "" ,[string]$file = "") #mail server configuration $smtpServer = "smtp.live.com" $smtpUser = "powershell@live.cn" $smtpPassword = "P@ssWord" $sslNeed =$true #SMTP server needs SSL should set this attribute $MailAddress ="powershell@live.cn" $fromName = "fuhj" $replyTo = "powershell@live.cn" #create the mail message $mail = New-Object System.Net.Mail.MailMessage #set the addresses $mail.From = New-Object System.Net.Mail.MailAddress($MailAddress,$fromName) $mail.To.Add($toAddress) #set the content $mail.Subject = $Subject $mail.Priority = "High" $mail.Body = $Body $filename= $file $attachment = new-Object System.Net.Mail.Attachment($filename) $mail.Attachments.Add($attachment) #send the message $smtp = New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer $smtp.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPassword $smtp.EnableSsl = $sslNeed; try{ $smtp.Send($mail) echo 'Ok,Send succed!' } catch { echo 'Error!Filed!' } }
执行的效果如下图所示:
收到的邮件如下图所示:
作者: 付海军
出处:http://fuhj02.cnblogs.com
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.shell.tor.hu