この記事では、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の自動送信が実現できます。業務の効率化、リマインダーの自動送信、エラーログの通知など、さまざまな場面で活用できます。