PowerShellを使用してメールを送信する方法、改行、添付ファイルがある場合

今回は、PowerShellを使用してメールを送信する方法について解説します。
本文が複数行ある場合を想定し、-Body内に改行コード(n)を使用して本文を改行します。

PowerShellを使用してメールを送信する 改行

コードです。

$EmailFrom = "送信元アドレス"
$EmailTo = "送信先アドレス"
$Subject = "メール件名"
$Body = "これはメールの本文です。`n`n複数行の場合は、改行コードを使用して分割できます。`n`nこれは最後の行です。"

$SMTPServer = "SMTPサーバーのアドレス"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("SMTPサーバーのユーザー名", "SMTPサーバーのパスワード")

$Message = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$Message.IsBodyHtml = $false

$SMTPClient.Send($Message)

上記のコードでは、

送信元アドレス
送信先アドレス
メールの件名
メールの本文
SMTPサーバーのアドレス
SMTPサーバーのポート番号
SMTPサーバーのユーザー名
SMTPサーバーのパスワード

を指定する必要があります。

PowerShellを使用してメールを送信する 添付ファイル

続いて、添付ファイルがある場合のコードです。

$EmailFrom = "送信元アドレス"
$EmailTo = "送信先アドレス"
$Subject = "メール件名"
$Body = "これはメールの本文です。`n`n添付ファイルがあります。"

$SMTPServer = "SMTPサーバーのアドレス"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("SMTPサーバーのユーザー名", "SMTPサーバーのパスワード")

$Attachment = New-Object System.Net.Mail.Attachment("C:\path\to\attachment.txt")

$Message = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$Message.Attachments.Add($Attachment)

$SMTPClient.Send($Message)

$Attachment.Dispose()

New-Object System.Net.Mail.Attachment コマンドレットを使用して、添付ファイルを作成します。
Add() メソッドを使用して、作成した添付ファイルをメッセージに追加します。
また、Dispose() メソッドを使用して、添付ファイルを削除します。

まとめ

本日は、PowerShellからメールを送信するコードで、本文に改行がある場合と添付ファイルがある場合について解説しました。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。