当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中使用 Send-MailMessage 发送 HTML 格式的电子邮件

作者:精品下载站 日期:2024-12-14 14:02:10 浏览:14 分类:玩电脑

在 PowerShell 中使用 Send-MailMessage 发送 HTML 格式的电子邮件


要求:从 PowerShell 脚本发送带有 HTML 格式正文的电子邮件。

如何使用带有 HTML 正文的 Send-MailMessage?

您需要从 PowerShell 发送 HTML 格式的电子邮件吗?如果是这样,您可以使用带有 -BodyAsHtml 参数的 Send-MailMessge cmdlet。我将向您展示如何使用 Send-MailMessage cmdlet 发送 HTML 格式的电子邮件。我还将提供一些在电子邮件中使用 HTML 格式的 PowerShell 示例。

以下是使用 Send-MailMessage cmdlet 从 PowerShell 脚本以 HTML 形式发送电子邮件的示例:


#Get Date
$ReportDate = Get-Date -format "MM-dd-yyyy"

#Configuration Variables for E-mail
$SmtpServer = "smtp.crescent.com" #or IP Address such as "10.125.150.250"
$EmailFrom = "Site Delete Script <[email protected]>"
$EmailTo = "[email protected]"
$EmailSubject = "Site Delete Script - Daily Report on: "+$ReportDate

#HTML Template
$EmailBody = @"
<table style="width: 68%" style="border-collapse: collapse; border: 1px solid #008080;">
 <tr>
    <td colspan="2" bgcolor="#008080" style="color: #FFFFFF; font-size: large; height: 35px;"> 
        Site Delete Script - Daily Report on VarReportDate  
    </td>
 </tr>
 <tr style="border-bottom-style: solid; border-bottom-width: 1px; padding-bottom: 1px">
    <td style="width: 201px; height: 35px">  Number of requests Approved</td>
    <td style="text-align: center; height: 35px; width: 233px;">
    <b>VarApproved</b></td>
 </tr>
  <tr style="height: 39px; border: 1px solid #008080">
  <td style="width: 201px; height: 39px">  Number of requests Rejected</td>
 <td style="text-align: center; height: 39px; width: 233px;">
  <b>VarRejected</b></td>
 </tr>
</table>
"@

#Get Values for Approved & Rejected variables
$ApprovedCount= Get-ApprovedReq()
$RejectedCount= Get-RejectedReq()

#Replace the Variables VarApproved, VarRejected and VarReportDate
$EmailBody= $EmailBody.Replace("VarApproved",$ApprovedCount)
$EmailBody= $EmailBody.Replace("VarRejected",$RejectedCount)
$EmailBody= $EmailBody.Replace("VarReportDate",$ReportDate)
 
#Send E-mail from PowerShell script
Send-MailMessage -To $EmailTo -From $EmailFrom -Subject $EmailSubject -Body $EmailBody -BodyAsHtml -SmtpServer $SmtpServer

和输出:

[玩转系统] 在 PowerShell 中使用 Send-MailMessage 发送 HTML 格式的电子邮件

您还可以将其存储在外部文件中,并使用脚本中的 Get-Content cmdlet 检索 HTML 格式/模板,而不是直接将 HTML 嵌入到脚本中。

在 PowerShell 中发送带有附件的 MailMessage:

只需在 Send-Mailmessage cmdlet 中指定 -attachments 参数即可。这是一个例子:


#send-mailmessage in powershell with attachment
$attachment = "D:\Reports\SiteDeleteRpt.csv"
 
#send-mailmessage in powershell multiple attachments
$attachment = "D:\Reports\SiteDeleteRpt1.csv","D:\Reports\SiteDeleteRpt2.csv"
 
Send-MailMessage -To $EmailTo -From $EmailFrom -Subject $EmailSubject -Body $EmailBody -BodyAsHTML -Attachments $attachment -SmtpServer $SmtpServer 

在 PowerShell 中向多个收件人发送邮件消息:

它只需要一个数组!


$EmailTo = "[email protected]", "victor <[email protected]>"

#or use:
$recipients = @("Marc M <[email protected]>", "victor <[email protected]>")
如何获取发送电子邮件服务器?使用此代码:
$SPGlobalAdmin = New-Object Microsoft.SharePoint.Administration.SPGlobalAdmin
$SMTPServer = $SPGlobalAdmin.OutboundSmtpServer

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯