【PowerShell】Gmailを送信する方法

PowerShell

この記事では、PowerShellを使ってGmailを送信する方法について説明します。

Gmailを自動送信するために必要なもの

Gmailの送信をPowerShellで行うには、以下の情報が必要です。
・Gmailアカウント
・PowerShell(Windowsなら標準でインストール済み)
・2 段階認証プロセスを有効にする
・アプリパスワード

Gmailで2 段階認証プロセスを有効にする

Gmailの「アプリパスワード」を作成するためには、まず2段階認証プロセスを有効にする必要があります。

1.Gmailにログインします。

2.右上の自分のアイコン →「Googleアカウントを管理」をクリックします。

3.左メニューから、「セキュリティ」をクリックします。

4.「2段階認証プロセスは無効になっています」をクリックします。

5.「2段階認証プロセスを有効にする」をクリックします。

6.電話番号を入力し、「次へ」をクリックします。

7.追加した電話番号に確認コードが送信されるので、コードを入力し、「確認」をクリックします。

8.「完了」をクリックします。

2段階認証プロセスが有効になりました。

Gmailで「アプリパスワード」を作成する

1.アプリ パスワードを作成、管理する を開きます。Google アカウントへのログインを求められるので、ログインしてください。

2.「アプリ名」に任意の名前を入力します。

3.16桁のアプリパスワードが生成されます。

メール送信スクリプト

PowerShellには、メールを送信するコマンドレットとして、Send-MailMessageコマンドレットが用意されているため、とても簡単にメールを送信することができます。

# Gmailの情報
$smtpServer = "smtp.gmail.com"
$smtpPort = 587
$gmailUser = "your-email@gmail.com"
$gmailPassword = "your-app-password" # 16桁のアプリパスワード

# メールの内容
$from = $gmailUser
$to = "recipient@example.com"
$subject = "テストメール"
$body = "このメールはPowerShellから自動送信されました。"

# セキュリティのため、パスワードをSecureStringで保持
$securePassword = ConvertTo-SecureString $gmailPassword -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($gmailUser, $securePassword)

# メール送信
Send-MailMessage -From $from -To $to -Subject $subject -Body $body `
-SmtpServer $smtpServer -Port $smtpPort -UseSsl -Credential $credential `
-Encoding ([System.Text.Encoding]::UTF8)

2行目:SMTPサーバ
3行目:SMTPサーバのポート番号
4行目:送信元メールアドレス
5行目:16桁のアプリパスワード(スペースを入れない)

9行目:送信先メールアドレス
10行目:メールの件名
11行目:メール本文
15行目:パスワードをPowerShellの「SecureString(暗号化)」形式に変換します。安全な認証のために必要です。
16行目:ユーザー名とパスワードを「資格情報(Credential)」オブジェクトとしてまとめます。SMTPサーバーにログインするために使います。

18行目~20行目:PowerShellの標準コマンドで、メールを送信する機能です。
件名、本文に日本語を使用しているので、UTF8にエンコードしています。

■実行結果

まとめ

この記事では、PowerShellを使ってgmailを送信する方法について説明しました。タスクスケジューラなどと組み合わせて使えば、簡単なスクリプトだけでGmailの自動送信が実現できます。業務の効率化、リマインダーの自動送信、エラーログの通知など、さまざまな場面で活用できます。

タイトルとURLをコピーしました