通過 Exchange Server 從 PowerShell 發送電子郵件

Jacki

如果您想了解如何從 PowerShell 發送電子郵件,那麼您來對地方了。

許多管理員和用戶設置了他們必須一次又一次寫入的預定義消息。

另請閱讀:用於運行 PowerShell 腳本和電子郵件警報的任務計劃程序

他們不會一次又一次地編寫消息,而是將其保存為模板並進行一些細微的更改,然後發送電子郵件。

同樣,如果您必鬚髮送某種用戶活動的每日報告。

發送消息的最快方法是使用 PowerShell。

您可以保存預定義的消息,進行必要的更改,然後將其粘貼到 PowerShell 中以發送電子郵件。

但是,您可以將代碼保存為腳本並運行相同的腳本以每天發送消息。

即使有幫助電源外殼,您也可以發送帶有附件的電子郵件。

因此,在本文中,我們將學習如何通過 PowerShell 發送簡單的電子郵件。

因此,我們還將了解如何生成 csv 報告並發送帶有附件的電子郵件。

如何使用 PowerShell 發送不帶附件的電子郵件

在通過 PowerShell 發送電子郵件之前,請確保您的組織中正在運行電子郵件服務,例如 Exchange Server 或支持該功能的任何其他電子郵件平台。

在我們的例子中,我們有微軟交換2019在組織中運行。

所以,在幫助下交換,我們將使用 PowerShell 發送電子郵件。

但是,我們需要一個簡單的代碼來發送不帶附件的電子郵件。

根據您的詳細信息設置以下代碼的格式

$sendMailMessageSplat = @{
    From = 'Administrator <[email protected]>'
    To = 'Jack <[email protected]>'
    Subject = 'Test mail'
    Body = 'Pls find the user daily report'
    smtpServer = 'mail.techijack.net' 
}
Send-MailMessage @sendMailMessageSplat

您可以更改“發件人、收件人、主題、正文和 SmtpServer”

確保輸入有效的電子郵件地址和 SMTP 服務器

執行上述代碼後,我們會在用戶 Jack 的收件箱中收到一封電子郵件,如下所示

至此,我們已經成功使用 PowerShell 發送了一封電子郵件。

如何從 PowerShell 發送帶有附件的電子郵件

發送帶有附件的電子郵件有點棘手。

這裡我們將使用腳本首先創建一個報告文件夾裡面的C磁碟

因此,我們將按照報告名稱和當前日期生成所有用戶上次登錄活動的 CSV 報告。

最後,我們將生成的報告附加在電子郵件中並發送給用戶 jack。

為此,我們將使用下面的腳本

$Date = Get-Date -Format "yyyy-MM-dd"
$ReportFolder = "C:Reports"
if (!(Test-Path $ReportFolder)) {
    New-Item -ItemType Directory -Path $ReportFolder
}
$ReportFile = "$ReportFolderDailyReport_$Date.csv"

# Export AD Users
$Users = Get-ADUser -Filter * -Property SamAccountName, DisplayName, Enabled, LastLogonDate
$Users | Export-Csv $ReportFile -NoTypeInformation -Encoding UTF8

# Send Email with Report Attachment
$sendMailMessageSplat = @{
    From        = 'Administrator <[email protected]>'
    To          = 'Jack <[email protected]>'
    Subject     = 'Daily User Report'
    Body        = 'Please find the attached user daily report.'
    SmtpServer  = 'mail.techijack.net'
    Attachments = $ReportFile
}

Send-MailMessage @sendMailMessageSplat

您可以根據您的設置設置報告路徑、電子郵件地址和 SMTP 服務器。

您可以測試此代碼,如果有效,請將其另存為“DailyReport.ps1”腳本文件。

在我們的例子中,我們將此腳本文件保存在 C 驅動器中。

我們將運行下面的腳本

c:dailyReport.ps1

腳本成功運行後,將發送一封電子郵件以及報告附件。

我們的 CSV 報告文件將如下所示

因此,通過這種方式,您可以將每日報告作為電子郵件中的附件發送。

自動化的考慮

如果這是一項日常任務,獲取組織中所有用戶的上次登錄信息。

您可以嘗試在任務計劃程序的幫助下自動化該過程並每天運行該任務。

因此,它會在給定的時間間隔內運行相同的腳本,並且自動地,您將在每天的固定時間獲得每日報告。

結論

自動報告使您的管理工作更加輕鬆。

管理員應使用多個腳本生成 CSV 或 HTML 格式的報告。

使用 PowerShell 運行腳本並將報告作為附件發送給責任方。

因此,為了實現自動化,您可以安排任務在特定時間運行特定腳本以獲取電子郵件警報。

如果對本文有任何疑問,請隨時聯繫 Techi Jack

我希望您還會喜歡有關 Exchange Server 的其他一些教程

此外,如果您想觀看通過 PowerShell 腳本發送電子郵件的視頻,請觀看下面的視頻。