使用PowerShell通过Smtp发送邮件
2010-06-09 18:03 @天行健中国元素 阅读(5224) 评论(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
浙公网安备 33010602011771号