TIPS

Outlookを利用してメールを複数件まとめて送信するスクリプト

投稿日:2016年7月1日 更新日:

Todo管理アプリとして、Todoistを使用しています。
4月頃から使い始めてようやく慣れてきたので、
仕事のタスクもTodoistに集約して管理しようと考えました。

しかし、職場のブラウザではフィルタリングによって
Todoistのサーバへアクセスすることができません。

かといって、セキュリティの穴を突いて
フィルタリングを越えてしまうのは
さすがにルール違反ですし、何より時間もかかります。

そこで、Todoistのプレミアムアカウントが持つ
「新たなタスクをメールによって追加する」機能を利用することにしました。

しかし、複数のタスクをまとめて登録したいときに
一通一通メールを作成して送信する、という操作をするのが面倒……
Excelとかでまとめといた情報を一気に送れればいいのに……

……というわけで、職場のOA端末にOutlookが入っていることを利用して、
TSVファイルから読み込んだ情報をまとめて送信するスクリプトを書きました。

PowerShellやWSHならスクリプトファイル1本で処理できそうですが、
私自身がそのあたりのスクリプトにまだ不慣れなため、制作効率を優先して
メール送信処理のみをPowerShellで書き、情報の読み込み等はバッチで書いています。

以下に中身のコードを記載しますが、
Todoistに関する考慮を全く入れていないため、
「メールをまとめて送る」という用途なら転用できると思います。

ただし、誤送信防止のチェック等を全く入れていないので、
そのあたりは注意して運用するか、追加した上で使用してください。

◆使用するファイル
.\maillist.tsv
→送信するメールの情報を記載したタブ区切りテキストファイル(TSV)。
 1列目はToメールアドレス、2列目は件名、3列目は本文となります。

.\MailBatchSend.bat
→ファイル読み込み処理等を記載したWindowsバッチファイル。

.\bin\sendEmail.ps1
→メール送信処理を記載したPowerShellスクリプトファイル。

◆MailBatchSend.batの中身
rem 送るメールの情報を記載したTSVファイル
set maillist=%~dp0maillist.tsv

rem TSVファイルを読み込んでループしながらメール送信していく
for /f “eol=# tokens=1,2,* delims= ” %%a in ( %maillist% ) do (
rem echo 送信先: %%a 件名 : %%b 本文 : %%c
powershell %~dp0bin\sendEmail.ps1 “%%a” “%%b” “%%c”
)
exit /b 0

◆sendEmail.ps1の中身
##オブジェクト取得
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)

##第1引数か第2引数が空だったらエラーレベル1で終了
if ( `
($Args[0] -eq $null) `
-Or`
($Args[0] -eq “”) `
-Or`
($Args[1] -eq $null) `
-Or`
($Args[1] -eq “”) `
){
exit 1
}

##引数として受け取った情報をメールのオブジェクトに格納
# 第1引数 Toアドレス
$Mail.To = $Args[0]
# 第2引数 件名
$Mail.Subject = $Args[1]
# 第3引数 本文
$Mail.Body = $Args[2]

## メール送信 してエラーレベル0で終了
# 問答無用で送信します
$Mail.Send()
exit 0

……上記のスクリプトは実は最終版ではありません。
本来の目的である「Todoistに一括登録する」という点を踏まえて
さらにいくつか手を加えているのですが、情報を回収し損ねてましたてへぺろ。
機会があればまたご紹介しようとおもいます。

Outlookのオブジェクトしらべたときに
いくつか面白そうなものを見つけていて、そちらで遊んだときのスクリプトとか。
あとPowerShellもっと遊びたいです。


記事をご覧頂き、ありがとうございました!
質問・意見・感想等ございましたら、気軽にお寄せください。

書いた人: 久世うりう (kuzeuriu)
お仕事のご依頼・お問い合わせは こちら

AdSense




AdSense




-TIPS
-,

執筆者:


記事にコメントする(本文のみで投稿可能です)

関連記事

no image

恩師も段取り八割って言ってましたね……

なんだか最近いろいろなところに顔を出していましたが、 とりあえず課題管理をしっかりやらないと死ぬ、ということはよくわかりました。 ええ。特定の人しか認識していない課題に後ろから刺されたりとか。 そうい …

no image

シナリオよりもエピソード?

今季アニメでガーリッシュナンバーが 一番刺さるなぁと感じていることなどから、 私に刺さる作品についてぼんやりと考えてみたら、 もしかしたら私は自分が思っていたほどには シナリオを重視していないのではな …

no image

構成要素を明確に捉えて

ひたすらお絵かきしてました。 衣装が複雑だとやっぱり作業的にも重いですね…… それにしても時間かけすぎのような気もしますけれど。 ラフ~下書きについては、脳内で充分に書き直して 方向性をしっかり固めた …

no image

Crystal Disk Infoでディスクの状態を確認してみる

こんな記事です(目次)1 あれから5年、経ちました。2 ディスクが生きてさえいれば。3 水晶雫、見守ります。4 ちょーかわいい……………………5 S.M.A.R.T.を見てみる。6 あまり過信はせずに …

no image

えっちしーんをスキップするマン

私、えろげーをやるときって、けっこう えっちしーんをスキップしちゃいます。 最近はえろまんが読むときに この描写えっちだなぁ…… どうしてこんなにえっちなんだろう…… というところまで噛み締めるように …

 久世うりう のブログ。好きなものを推して生きていく。ゲーム、アニメ、マンガ、えっちコンテンツ、なんらかの制作、日記など、そのとき最もノッてることを書いてます。商品リンクはだいたいアフィリエイト。

◆直近のイベント

直近のイベント

今後のイベントはありません

Twitter @kuzeuriu

アフィ枠!(素直)

○ノンデザイナーズ・デザインブック

「理解しやすい配置の基礎」をやさしくわかりやすく解説している本。初学者さん、思いがけずレイアウト・デザインの必要に駆られた方。デザイナーかノンデザイナーかを問わず、活かせるものを見つけられるかと思います。

2020年1月
« 7月    
 12345
6789101112
13141516171819
20212223242526
2728293031