博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Powershell 邮件发送
阅读量:6304 次
发布时间:2019-06-22

本文共 3152 字,大约阅读时间需要 10 分钟。

目录

前言

最近领导想在winServer2012上搞个自动发送邮件的计划任务,下面有几种发送邮件的方式。

如果Powershell V2.0 以上建议使用第一种方式(比较无脑),2.0以下的话也可以使用第二种方法。

Send-MailMessage

Syntax

Send-MailMessage -To $to -From $from -cc $cc -Subject $sub -Body $body -Credential $mycreds -SmtpServer $smtp -DeliveryNotificationOption Never -BodyAsHtml -UseSsl -port 587 -Attachments $attach

Example:

#Create the secure passwardFunction Set-SecurePwd($storage){
$mysecret = 'YOURPASSWORD' $mysecret | ConvertTo-SecureString -AsPlainText -Force | #将加密的标准字符串转换为安全字符串。它还可以将纯文本转换为安全字符串。 ConvertFrom-SecureString | #将安全字符串转换为加密的标准字符串。 Out-File -FilePath $storage #将加密的标准字符输出到指定文件 $pw = Get-Content $storage | ConvertTo-SecureString #获取经过加密的标准字符并转换为安全字符串 return $pw}Function Send-Email($attach){
$pwd = Set-SecurePwd $storage $cred = New-Object System.Management.Automation.PSCredential "userName",$pwd #创建身份认证对象 $to = "xxx@xxx.com" $from = "xxx@163.com" $cc = "xxx@xxx.com" $sub = "TEST" $body = "Just test" $smtp = "smtp.163.com" Send-MailMessage -To $to -From $from -cc $cc -Subject $sub -Body $body -Credential $cred -SmtpServer $smtp -UseSsl -port 25 -Attachments $attach if($?) { Write-Host "Sent Successfully!" -ForegroundColor Green } else { Write-Host "Error" -ForegroundColor Red }}#Main$storage = "E:\pwd\password.txt"$attach = "E:\attach\test.txt"Send-Email $attach #指定需要发送的附件

注意$from 的Address必须能够与$cred身份认证对象一致,这个例子使用了163邮件的SMTP Server 。

.NET.Mail

还可以使用.NET支持的实例来实现邮件发送,上面的Cmdlet也是调用了这一实例。

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 = "SMTPSERVERADDRESS" $smtpUser = "smtpUserName" $smtpPassword = "smtpUserPwd" $sslNeed =$true #SMTP server needs SSL should set this attribute $MailAddress ="xxx@163.com" $fromName = "mailAccountName" $replyTo = "xxx@163.com" #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!' } }Send-Mail "xxx@xxx.com" "TEST" "Just test" "E:\attach\hd.txt"

使用OutLook发送邮件

这是调用了本地的MAPI Client程序,不能自动发送,只是填充了邮件信息,需要手动点击发送。例子来自——Powershell中文博客

$subject = 'Sending via MAPI client'$body = 'My Message'$to = 'tobias@powertheshell.com'$mail = "mailto:$to&subject=$subject&body=$body"Start-Process -FilePath $mail

:)

转载地址:http://dxbxa.baihongyu.com/

你可能感兴趣的文章
IOS定位服务的应用
查看>>
[SMS&WAP]实例讲解制作OTA短信来自动配置手机WAP书签[附源码]
查看>>
IOS中图片(UIImage)拉伸技巧
查看>>
【工具】系统性能查看工具 dstat
查看>>
基于zepto或jquery的手机端弹出框成功,失败,加载特效
查看>>
php引用(&)
查看>>
Linux-常用快捷键
查看>>
工厂方法模式与抽象工厂模式的区别
查看>>
(3)验证用户的输入
查看>>
java接入阿里云短信云服务详细教程
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
最怕想当然
查看>>
小心使用replicate_do_db和replicate_ignore_db
查看>>
Bootstrap3基础 table-bordered/hover 表格加外边框和鼠标悬停对应行的背景色加深
查看>>
log4net 日志不能输出
查看>>
Struts2的工作流程
查看>>
AtCoder Beginner Contest 077 C - Snuke Festival
查看>>
hdu2036 改革春风吹满地
查看>>
SimpleDateFormat线程不安全原因及解决方案
查看>>
Maven下载依赖项的源代码(source code)和Javadoc
查看>>