使用PowerShell发送邮件

本文以163邮箱为例,介绍使用PowerShell发送邮件的方式,以下为脚本内容。

# 恢复Powershell的默认执行策略,默认不允许执行任何脚本
# Set-executionpolicy   default  -force
#设置Powershell的执行策略为,可以执行任何脚本
# Set-ExecutionPolicy  Unrestricted  -force

#定义一个发送邮件的函数sendEmail(收件人地址,发件人地址,邮件服务器,邮件服务器端口,邮件服务器登陆密码,邮件标题,邮件正文)
Function sendEmail([string]$to,[string]$from,[string]$smtpServer,[int]$port,[string]$password,[string]$subjet,[string]$body )
{
#生成一个.Net邮件客户端对象,参数是服务器的地址和端口
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
#使用SSL加密
$SMTPClient.EnableSsl = $true
#提供邮件客户端类使用的用户名和密码
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($from, $password)
#调用send方法发送邮件
$SMTPClient.Send($from,$to, $Subject, $Body)

}

#调用方式
sendEmail "收件人Email地址" "发件人Email地址" "smtp.163.com" 25 "密码" "邮件标题" "邮件正文"

时间: 2024-09-26 21:30:38

使用PowerShell发送邮件的相关文章

使用Powershell实现数据库自动化运维

使用Powershell实现数据库自动化运维 目前市场上针对SQLServer的图书,好的原创图书屈指可数,翻译的图书较多,但只限于专门针对SQL Server数据库本身的开发.管理和商业智能. 而针对PowerShell的图书,可以说大多为MSDN里的学习笔记,主要针对Windows操作系统的管理. 微软在大的布局和技术动向来看,力推云平台.而平台化的基础是自动化.高可用.那么细化到最基础的技术着眼点,微软正在大力开发其所有服务器端产品对 PowerShell的支持.针对SQL Server来

Windows下PowerShell监控Keepalived

一.背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell来完成发邮件预警. 二.脚本详情 三.注意事项 采用的ISE编辑器:PowerShell ISE 查看PowerShell版本信息:Get-Host 刚开始使用Powershell,导入管理模块或者其他操作的时候会出现因为在此系统中禁止执行脚本的报错,报错内容如下: PS C:\Windows\system32> set

SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测.作为一个高效的DBA不可能每天都要上生产机上查看磁盘剩余或者直到磁盘无剩余空间报错后才采取扩容措施. 当然,作为微软的服务器有着自己的监控软件:SCCM(System Center

SQL Server自动化运维系列——监控跑批Job运行状态(Power Shell)

需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在上一篇文章中已经分析了SQL SERVER中关于邮件的基础配置,本篇将利用此功能对多台Server的跑批Job进行监控. 本篇实现 1.每天检查服务器中的SQL Server跑批Job的运行状态,如果跑批失败,则发邮件告诉管理员失败的明细 2.解决多台服务器同时检查 监控脚本 首先我们来解决第二个问题,关于多台服务器的问题: <1>一般监控我们需

powershell 通过SMTP发送邮件

一直以来就用.net的方式发送邮件,因为powershell自带的方式用起来容易出错,且比较简单,最近看到一些人也反应使用中遇到麻烦. #定义函数 function sendmail($mailaddr,$body){ $msg=New-Object System.Net.Mail.MailMessage $msg.To.Add($mailaddr) $msg.From = New-Object System.Net.Mail.MailAddress("发送邮件的账号@xxx.com"

使用PowerShell调用MTools分析MongoDB性能并发送邮件

使用PowerShell调用MTools分析MongoDB性能并发送邮件 问题描述: 在MongoDB日常运维中,经常需要查看连接数的趋势图.慢查询.Overflow语句.连接来源. 解决方案: 1. 将Windows备份机目录挂载到MongoDB本地目录下,将LogRotate切换后的最新一个日志拷贝到备份目录. 参考博文:<在Linux下挂载Windows系统共享目录> 2. 在Windows服务器上安装Mtools. 参考博文:<在64位Windows Server 2008 R2

Exchange发送邮件后卡在草稿箱

今天给一个客户处理Exchange无法发送邮件的问题, 客户当前使用的为邮件中继与邮件网关,即自己发送邮件时,邮件主机设定为中继服务商提供的地址,MX记录设定为邮件网关服务商的地址. 在邮件处理过程中测试用户自己给自己发送邮件,发现邮件被放到了草稿箱中.在邮件队列中发现很多邮件都卡在了队列,提示为DNS Query Failed,经过检查发送连接器,发现DNS服务器设定正常,使用NSLOOKUP解析测试公网MX记录,也正常. 随即想起之前一个项目中,由于Exchange 2013版本较旧有诸多B

发送邮件的三种方式:Send Mail Message

发送邮件的三种方式: 1.VBS 执行vbs脚本文件的程序为: system32文件下的 NameSpace = "http://schemas.microsoft.com/cdo/configuration/" Set Email = createObject("CDO.Message") Email.From = "xxx" '發送者 Email.To = "xxx;xxx" '收件地址 Email.Subject = &

Exchange 2013 PowerShell发送SMTP邮件

作为一个Exchange管理员,我们可能需要使用PowerShell脚本自动化的发送电子邮件.下面一起学习下如何使用PowerShell脚本在你的组织中发送SMTP电子邮件信息. 怎么做到这点呢? PowerShell V2以及后续版本都提供了核心命令可以通过SMTP发送电子邮件信息.使用下面的语法可以发送一份电子邮件信息: Send-MailMessage -To [email protected] ` -From [email protected] ` -Subject "Test E-ma