PowerShellを使ってメールを自動送信する方法

PowerShellを使ったメール自動送信は、業務の効率化や自動化に有用なスキルです。この記事では、初心者にもわかりやすく、PowerShellを使ってメールを自動送信する方法を紹介します。さらに、この技術の応用例や、より深い知識についても触れます。

目次

基本的なメール送信のスクリプト

PowerShellでメールを送信する一番基本的な方法について解説します。

Send-MailMessageコマンドレット

PowerShellにはSend-MailMessageというコマンドレットがあります。このコマンドレットを使って、基本的なメール送信が可能です。

# SMTPサーバーのアドレス
$smtpServer = "smtp.example.com"

# メール送信者のアドレス
$from = "[email protected]"

# メール受信者のアドレス
$to = "[email protected]"

# メールの件名
$subject = "テストメール"

# メールの本文
$body = "これはテストメールです。"

# Send-MailMessageコマンドでメール送信
Send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body

このスクリプトを実行すると、指定したSMTPサーバーを通じてメールが送信されます。

パラメーターの説明

  • $smtpServer: SMTPサーバーのアドレスを指定します。
  • $from: 送信者のメールアドレス。
  • $to: 受信者のメールアドレス。
  • $subject: メールの件名。
  • $body: メールの本文。

メール送信の応用

添付ファイルを送る

-Attachmentsパラメータを使って、添付ファイルを送ることもできます。

# 添付するファイルのパス
$attachment = "C:\path\to\file.txt"

# Send-MailMessageコマンドでメール送信
Send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $body -Attachments $attachment

HTML形式で送る

-BodyAsHtmlパラメータを使って、HTML形式でメール本文を送ることもできます。

# HTML形式のメール本文
$bodyHtml = "<h1>これはテストメールです。</h1>"

# Send-MailMessageコマンドでメール送信
Send-MailMessage -SmtpServer $smtpServer -From $from -To $to -Subject $subject -Body $bodyHtml -BodyAsHtml

補足:セキュリティ面での注意

メール送信スクリプトを作る際には、セキュリティ面での注意が必要です。特にSMTP認証情報(ユーザー名とパスワード)は、コード内にベタ書きせずに、環境変数や設定ファイルから読み取るようにしましょう。

まとめ

PowerShellを用いて、簡単なメール送信から添付ファイルやHTML形式での送信まで、多岐にわたる処理が可能です。ただし、セキュリティ面でも注意が必要です。この知識を活かして、業務の効率化や自動化に貢献しましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次