PowerShell 経由で電子メールを送信する場合は、Send-MailMessage コマンドレットに慣れています。残念ながら、Send-MailMessage コマンドレットは廃止されたため、使用は推奨されません。では、Send-MailMessage の代替手段は何でしょうか?答えは Send-MailKitMessage です。この記事では、PowerShell を使用して電子メールを送信する方法を学習します。
Send-MailMessage コマンドレットは廃止されました
のメールメッセージの送信PowerShell 経由で電子メール メッセージを送信するコマンドレットが一般的です。残念ながら、Send-MailMessage コマンドレットは廃止されたため、今後は使用しないでください。
注記:Send-MailMessage コマンドレットは廃止されました。このコマンドレットは、SMTP サーバーへの安全な接続を保証しません。 PowerShell にはすぐに代替できるものはありませんが、Send-MailMessage は使用しないことをお勧めします。
デフォルトの PowerShell コマンドレットには代替となるものはありませんが、PowerShell から電子メール メッセージを送信するためにインストールして使用できるモジュールはあるでしょうか?はい、あります。のSend-MailKitMessageこのモジュールは、Send-MailMessage コマンドレットの優れた代替品です。
SMTPリレーを構成する
SMTP リレーを設定する場合は、次の記事をお読みください。
- Exchange Server で匿名 SMTP リレーを構成する
- Office 365 SMTP リレーを構成する
Send-MailKitMessage モジュールをインストールする
Send-MailKitMessage モジュールをシステムにインストールするには、以下の手順を実行します。
1. Windows PowerShell 実行ポリシーを設定する
デフォルトでは、スクリプトをインストールできません。インターネットからダウンロードするすべての PowerShell スクリプトに信頼できる発行者による署名を要求するには、PowerShell を管理者として実行し、コマンドレットを実行します。
Set-ExecutionPolicy RemoteSigned重要:管理者特権の Windows PowerShell ウィンドウを閉じて再度開き、変更を適用します。
2.PowerShellGetモジュールをインストールする
PowerShell を管理者として実行します。コマンドを実行しますインストールモジュール PowershellGet -Force。 NuGet プロバイダーをインストールするように求められたら、 を押します。Y続いて入力。
Install-Module PowershellGet -Forceインストールできないというエラーが発生した場合は、「PowerShell 用の NuGet プロバイダーをインストールできない」という記事をお読みください。
3. Send-MailKitMessage モジュールをインストールする
をインストールしますSend-MailKitMessage モジュール。
Install-Module -Name Send-MailKitMessage -Forceモジュールがインストールされたので、PowerShell を使用して電子メールを送信する方法の例をいくつか見てみましょう。
Send-MailKitMessage パラメータ
Send-MailKitMessage モジュールを使用する場合は、以下のパラメーターを使用できます。
# Use secure connection if available ([bool], optional)
$UseSecureConnectionIfAvailable = $true
# Authentication ([System.Management.Automation.PSCredential], optional)
$Credential = [System.Management.Automation.PSCredential]::new("Username", (Read-Host -Prompt "Enter password" -AsSecureString))
# SMTP server ([string], required)
$SMTPServer = "SMTPServer"
# Port ([int], required)
$Port = "PortNumber"
# Sender ([MimeKit.MailboxAddress] https://www.mimekit.net/docs/html/T_MimeKit_MailboxAddress.htm, required)
$From = [MimeKit.MailboxAddress]"SenderEmailAddress"
# Recipient list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, required)
$RecipientList = [MimeKit.InternetAddressList]::new()
$RecipientList.Add([MimeKit.InternetAddress]"Recipient1EmailAddress")
# CC list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, optional)
$CCList = [MimeKit.InternetAddressList]::new()
$CCList.Add([MimeKit.InternetAddress]"CCRecipient1EmailAddress")
# BCC list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, optional)
$BCCList = [MimeKit.InternetAddressList]::new()
$BCCList.Add([MimeKit.InternetAddress]"BCCRecipient1EmailAddress")
# Subject ([string], optional)
$Subject = [string]"Subject"
# Text body ([string], optional)
$TextBody = [string]"TextBody"
# HTML body ([string], optional)
$HTMLBody = [string]"HTMLBody"
# Attachment list ([System.Collections.Generic.List[string]], optional)
$AttachmentList = [System.Collections.Generic.List[string]]::new()
$AttachmentList.Add("Attachment1FilePath")
# Splat parameters
$Parameters = @{
"UseSecureConnectionIfAvailable" = $UseSecureConnectionIfAvailable
"Credential" = $Credential
"SMTPServer" = $SMTPServer
"Port" = $Port
"From" = $From
"RecipientList" = $RecipientList
"CCList" = $CCList
"BCCList" = $BCCList
"Subject" = $Subject
"TextBody" = $TextBody
"HTMLBody" = $HTMLBody
"AttachmentList" = $AttachmentList
}
# Send message
Send-MailKitMessage @ParametersPowerShell で電子メールを送信するために使用できるテンプレートをいくつか紹介します。
次のパラメータが必要です。
- SMTPサーバー
- ポート
- から
- 受信者リスト
受信者に電子メールを送信する
この例では、送信者から受信者に電子メール メッセージを送信します。
以下も参照してください。Microsoft Graph API と PowerShell を使用して電子メールを送信する
# SMTP server ([string], required)
$SMTPServer = "mail.exoip.com"
# Port ([int], required)
$Port = "25"
# Sender ([MimeKit.MailboxAddress] https://www.mimekit.net/docs/html/T_MimeKit_MailboxAddress.htm, required)
$From = [MimeKit.MailboxAddress]"[email protected]"
# Recipient list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, required)
$RecipientList = [MimeKit.InternetAddressList]::new()
$RecipientList.Add([MimeKit.InternetAddress]"[email protected]")
# Subject ([string], optional)
$Subject = [string]"This is the subject"
# Text body ([string], optional)
$TextBody = [string]"This is the text body"
# Splat parameters
$Parameters = @{
"SMTPServer" = $SMTPServer
"Port" = $Port
"From" = $From
"RecipientList" = $RecipientList
"Subject" = $Subject
"TextBody" = $TextBody
}
# Send message
Send-MailKitMessage @Parameters受信者の受信トレイではこのように表示されます。

添付ファイル付きのメールを送信する
この例では、添付ファイル付きの電子メール メッセージを複数の受信者に送信します。
# SMTP server ([string], required)
$SMTPServer = "mail.exoip.com"
# Port ([int], required)
$Port = "25"
# Sender ([MimeKit.MailboxAddress] https://www.mimekit.net/docs/html/T_MimeKit_MailboxAddress.htm, required)
$From = [MimeKit.MailboxAddress]"[email protected]"
# Recipient list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, required)
$RecipientList = [MimeKit.InternetAddressList]::new()
$RecipientList.Add([MimeKit.InternetAddress]"[email protected]")
$RecipientList.Add([MimeKit.InternetAddress]"[email protected]")
# Subject ([string], optional)
$Subject = [string]"Sending the Attachment"
# Text body ([string], optional)
$TextBody = [string]"See the CSV file attachment."
# Attachment list ([System.Collections.Generic.List[string]], optional)
$AttachmentList = [System.Collections.Generic.List[string]]::new()
$AttachmentList.Add("C:tempFile.csv")
# Splat parameters
$Parameters = @{
"SMTPServer" = $SMTPServer
"Port" = $Port
"From" = $From
"RecipientList" = $RecipientList
"Subject" = $Subject
"TextBody" = $TextBody
"AttachmentList" = $AttachmentList
}
# Send message
Send-MailKitMessage @Parameters受信者の受信トレイではこのように表示されます。

メーリングリストに電子メールを送信する
この例では、CC フィールドと BCC フィールドに追加の受信者を含む電子メール メッセージをメーリング リストに送信します。
# SMTP server ([string], required)
$SMTPServer = "mail.exoip.com"
# Port ([int], required)
$Port = "25"
# Sender ([MimeKit.MailboxAddress] https://www.mimekit.net/docs/html/T_MimeKit_MailboxAddress.htm, required)
$From = [MimeKit.MailboxAddress]"[email protected]"
# Recipient list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, required)
$RecipientList = [MimeKit.InternetAddressList]::new()
$RecipientList.Add([MimeKit.InternetAddress]"[email protected]")
# CC list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, optional)
$CCList = [MimeKit.InternetAddressList]::new()
$CCList.Add([MimeKit.InternetAddress]"[email protected]")
# BCC list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, optional)
$BCCList = [MimeKit.InternetAddressList]::new()
$BCCList.Add([MimeKit.InternetAddress]"[email protected]")
# Subject ([string], optional)
$Subject = [string]"To all the members"
# Text body ([string], optional)
$TextBody = [string]"Check out the magic."
# Splat parameters
$Parameters = @{
"SMTPServer" = $SMTPServer
"Port" = $Port
"From" = $From
"RecipientList" = $RecipientList
"CCList" = $CCList
"BCCList" = $BCCList
"Subject" = $Subject
"TextBody" = $TextBody
}
# Send message
Send-MailKitMessage @Parameters受信者の受信トレイではこのように表示されます。

安全な接続 (TLS) 経由で電子メールを送信する
Transport Layer Security (TLS) は、セキュリティとプライバシーを確保するために電子メール メッセージを暗号化するプロトコルです。
この例では、安全な接続 (TLS) 経由で受信者に認証する必要がある送信者から電子メール メッセージを送信します。
# Use secure connection if available ([bool], optional)
$UseSecureConnectionIfAvailable = $true
# Authentication ([System.Management.Automation.PSCredential], optional)
$Credential = [System.Management.Automation.PSCredential]::new("[email protected]", (Read-Host -Prompt "Enter password" -AsSecureString))
# SMTP server ([string], required)
$SMTPServer = "mail.exoip.com"
# Port ([int], required)
$Port = "587"
# Sender ([MimeKit.MailboxAddress] https://www.mimekit.net/docs/html/T_MimeKit_MailboxAddress.htm, required)
$From = [MimeKit.MailboxAddress]"[email protected]"
# Recipient list ([MimeKit.InternetAddressList] https://www.mimekit.net/docs/html/T_MimeKit_InternetAddressList.htm, required)
$RecipientList = [MimeKit.InternetAddressList]::new()
$RecipientList.Add([MimeKit.InternetAddress]"[email protected]")
# Subject ([string], optional)
$Subject = [string]"Sending with Port 587"
# Text body ([string], optional)
$TextBody = [string]"Sending the message on Port 587 (TLS)"
# Splat parameters
$Parameters = @{
"UseSecureConnectionIfAvailable" = $UseSecureConnectionIfAvailable
"Credential" = $Credential
"SMTPServer" = $SMTPServer
"Port" = $Port
"From" = $From
"RecipientList" = $RecipientList
"Subject" = $Subject
"TextBody" = $TextBody
}
# Send message
Send-MailKitMessage @Parametersそれでおしまい!
結論
Send-MailKitMessage モジュールを使用して PowerShell で電子メールを送信する方法を学習しました。これは、現在は使用されていない Send-MailMessage コマンドレットの優れた代替品です。モジュールをインストールしてスクリプトを調整するか、それを使用して送信 SMTP メール フローをテストします。
この記事は楽しかったですか? 「サードパーティのスパム フィルターからのメールのみを受け入れるように Microsoft 365 を構成する方法」もお勧めします。ぜひフォローしてこの記事をシェアしてください。








![iPadからMosyle MDMを削除する方法[3つの方法]](https://elsefix.com/images/5/2024/09/1726475779_remove-mosyle-corporation-mdm.jpg)





