ส่งอีเมลรูปแบบ HTML ด้วย Send-MailMessage ใน PowerShell
ข้อกำหนด: ส่งอีเมลจากสคริปต์ PowerShell ด้วยเนื้อหาที่มีรูปแบบ HTML
จะใช้ Send-MailMessage ด้วยเนื้อหา HTML ได้อย่างไร
คุณจำเป็นต้องส่งอีเมลในรูปแบบ HTML จาก PowerShell หรือไม่ หากเป็นเช่นนั้น คุณสามารถใช้ Send-MailMessge cmdlet พร้อมกับพารามิเตอร์ -BodyAsHtml ฉันจะแสดงวิธีใช้ Send-MailMessage cmdlet เพื่อส่งอีเมลในรูปแบบ HTML ฉันจะให้ตัวอย่าง PowerShell บางส่วนของการใช้การจัดรูปแบบ HTML ในอีเมลของคุณ
นี่คือตัวอย่างสำหรับการส่งอีเมลเป็น HTML จากสคริปต์ PowerShell ด้วย Send-MailMessage cmdlet:
#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 <SiteDeleteScript@Crescent.com>"
$EmailTo = "SharePointSupport@Crescent.com.com"
$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
และผลลัพธ์:
แทนที่จะฝัง HTML ลงในสคริปต์โดยตรง คุณยังสามารถจัดเก็บไว้ในไฟล์ภายนอกและดึงข้อมูลรูปแบบ/เทมเพลต HTML ด้วย Get-Content cmdlet ในสคริปต์ได้
ส่งข้อความเมลใน PowerShell พร้อมไฟล์แนบ:
เพียงระบุพารามิเตอร์ -สิ่งที่แนบมาใน Send-Mailmessage cmdlet นี่คือตัวอย่าง:
#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 = "marcm@crescent.com", "victor <victor@crescent.com>"
#or use:
$recipients = @("Marc M <marcm@crescent.com>", "victor <victor@crescent.com>")
จะรับเซิร์ฟเวอร์อีเมลขาออกได้อย่างไร ใช้รหัสนี้:
$SPGlobalAdmin = New-Object Microsoft.SharePoint.Administration.SPGlobalAdmin
$SMTPServer = $SPGlobalAdmin.OutboundSmtpServer