目录

  • 目录
  • 前言
  • Send-MailMessage
  • NETMail
  • 使用OutLook发送邮件

前言

最近领导想在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 passward
Function 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

:)

Powershell 邮件发送相关推荐

  1. 邮件发送类,支持HTML格式,支持优先级设置

    www.chinacs.net  2002-5-9  中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...

  2. 使用Spring实现邮件发送

    2019独角兽企业重金招聘Python工程师标准>>> 这两天写个小程序需要使用邮件发送的功能,在网上搜索了一帮子文章,感觉还是使用Spring的邮件发送功能比较方便,哈哈,懒人就这 ...

  3. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  4. CentOS搭建msmtp+mutt实现邮件发送

    1:搭建配置msmtp 下载msmtp包: 官方地址:http://msmtp.sourceforge.net/download.html 编译,安装(官方下载的包为tar.xz格式): #xz -d ...

  5. 利用phpmailer类邮件发送

    <?phprequire("class.phpmailer.php"); //下载的文件必须放在该文件所在目录$mail = new PHPMailer(); //建立邮件发 ...

  6. python 数据库查询结果邮件提醒_Python实现的查询mysql数据库并通过邮件发送信息功能...

    本文实例讲述了Python实现的查询mysql数据库并通过邮件发送信息功能.分享给大家供大家参考,具体如下: 这里使用Python查询mysql数据库,并通过邮件发送宕机信息. Python代码如下: ...

  7. JavaMail邮件发送不成功的那些坑人情况及分析说明

    前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解.但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给初学者造成了不少麻烦,而我就是 ...

  8. 邮件发送 --- 纯Java、JavaWeb、Spring三种实现方式

    邮件发送学习笔记~ 一.邮件发送介绍 要在网络上实现邮件功能,必须要有专门的邮件服务器! 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中! ...

  9. 使用UTL_MAIL包实现存储过程邮件发送(转)

    邮件通知预警和提示在当前系统中已经是一个比较常见的功能.各类型语言分别针对邮件提供了功能包和API接口方法,本篇介绍如何在PL/SQL代码中使用UTL_MAIL工具包发送邮件,同时还介绍配置中注意的细 ...

最新文章

  1. 第十五届全国大学生智能汽车竞赛各分赛区成绩汇总
  2. iOS开发之使用XMPPFramework实现即时通信(二)
  3. 一起再看执行上下文/作用域链/原型链
  4. javafx css样式_使用CSS设置JavaFX饼图样式
  5. 电脑c语言怎么调出来的,c语言系统源代码_C语言判断系统版本的代码怎样将值调出来啊...
  6. 脑洞大开!拿Transformer和CNN比较!犯错都像人类
  7. Storm与Spark区别
  8. 单机到集群的WEB架构演变
  9. 【水果识别】基于matlab GUI苹果质量检测及分级系统(带面板)【含Matlab源码 1613期】
  10. 荔枝软件如何测试声音,荔枝如何测自己的声音 荔枝测自己的声音方法
  11. mac无线连接打印机进行打印和扫描
  12. 马蹄疾 | 2019年,是时候认真学一波 Grid 布局了
  13. 什么是“冲激响应”?这样讲你该理解了!
  14. 团队管理5 | 管理风格
  15. HC-05蓝牙AT指令无反应问题
  16. linux下防止rm-rf /处理
  17. 将element-plus分页组件由默认英文,改为中文
  18. 所示零件是减速器中的传动轴
  19. 富士最快计算机,史上对焦最快卡片DC 富士F305EXR评测
  20. OSE RTOS中APP进程接收消息机制

热门文章

  1. 编译-C++支持iOS静态库的脚本学习
  2. (017)java后台开发之客户端通过HTTP获取接口Json数据
  3. 神盾局hive是什么_《神盾局特工》第七季再爆幕后照,这位角色复古装又美出新高度...
  4. python转cython_用Cython加速Python到“起飞”(推荐)
  5. 由浅入深解读Redis高级能力及性能调优
  6. 用最简单的例子说明设计模式(一)之单例模式、工厂模式、装饰模式、外观模式...
  7. jsPlumb.jsAPI阅读笔记(官方文档翻译)
  8. navigation的pushViewController卡顿问题
  9. 如何选择就业方向(80后的个人经验,转载)
  10. JavaScript OOP(2)定义JavaScript类