PowerShell でリマインダーメールの送信メモ
メモ:
勉強会のリマインダーメールを GMail から送るときのスクリプト。*1
cmd から、
powershell ~/スクリプト.ps1
で実行。正常に終われば、Excel のプロセスも残りません。
スクリプト.ps1
$tmpl = [System.IO.File]::ReadAllText("〜\テンプレート.txt") $subject = "件名" $from = "送信元のGMailアドレス" $mailer = New-Object System.Net.Mail.SmtpClient("smtp.gmail.com ",587) $mailer.EnableSsl=$True $mailer.Credentials= New-Object System.Net.NetworkCredential("送信元のGMailアドレス", "パスワード") $excel = New-Object -ComObject "Excel.Application" $workbook = $excel.Workbooks.Open("〜\エクセルファイル.xls") $sheet = $workbook.Worksheets.Item(1) $range = $sheet.UsedRange $rows = $range.Rows $columns = $range.Columns $count = $rows.Count for($r = 3; $r -le $count; $r++) { $name = $range.Cells.Item($r, 3).Text $address = $range.Cells.Item($r, 4).Text $party = $range.Cells.Item($r, 5).Text $body = $tmpl.Replace("[:名前]", $name).Replace("[:懇親会]", $party) $mailer.send($from, $address, $subject, $body) sleep -m 1 } $excel.Quit()
テンプレート.txt
[:名前] 様 こんにちは、SQLWorld お だ です。 04/14 SQLWorld★大阪#9 にご登録いただきありがとうございます。 いよいよ明日開催ですが、お申込み内容/日時等ご確認お願いします。 懇親会参加:[:懇親会] …
エクセルファイルはこんな感じ
*1:利用する場合は自己責任で