今回はoutlookのメールを送信するアクションでメールを送信してきた複数人に対して一斉に返信する方法についてメモしておきます。
特定のフォルダに届いたメールの送信者全員に一括でメールを返信するにはどうしたらいい?
解決までに時間がかかったのでメモとして記録を残しておきます
フローの全体図
このフローでは最終的に『送信してきた人のメールアドレス』に対して返信する必要があるので、そのアドレスを取得する必要があります。
そのために、outlookからメールメッセージを取得 のアクションを追加します。
いま取得したい『送信してきた人のメールアドレス』は最後の行に記載されてあるRetrived Emailの変数に格納されています。
メールフォルダ:sample に届いたメールは下記の3通です。
生成された変数Retrived Emailの中身は下記の通り
右端の詳細表示をクリックしてさらに中身を見ていきます。
ここを見てみると「.From」のところに送信者のメールアドレス(今回は私のサンプルメールアドレス)が記載してあります。
このままだと、一人分のアドレスしか取得できていないよね。。
フォルダに届いた全員のメールアドレスを取得するためにForEach処理を行います。
またForEach処理を行う前に、送信者全員のメールアドレスを記載していく「リスト」を事前に作成しておきます。↓
データを格納するための「リスト」を事前に作成しておく
では下図の赤枠の部分を説明していきます。
まずは送信者全員のアドレスを登録しておくための「リスト」を作成しておきます。
リスト名は AddressList としています。
このリストにどんどん送信者のメールアドレスが登録されていく処理を行います
今やりたいことは「Address List」に名前を繰り返し追加していく処理なので、
繰り返し処理を行える「For Each」のアクションを追加します。
ここまではなんとなく分かるけど、具体的にどうすればいい?
繰り返したい処理は「メールアドレスをListに追加していくこと」なので、ForEach処理の中に「項目をリストに追加する」アクションを入れます
繰り返したい処理したいアクションはForEachで囲ってやればいいのね
ではではForEachの中身を詳しくみてみよう!
ForEachアクションではどんな指示をすればいい?
まずは「反復処理を行いたい値はなにか?」を考えるよ
今回は送信者のアドレスをListに繰り返し書き込みたいから、その情報が入っている変数を指定する必要があるよね
そう!つまり反復処理を行う値には 「Retrieved Emails」を設定すればOK
なるほど!そうやって考えていけばいいのね
では次にその下のCurrentItemについて説明していくよ
CurrentItemってなに?
このCurrentItemっていうのが良くわからないんだよね
Current Item を直訳すると「現在の項目」という意味になる。つまり現在処理中の項目を指すよ
現在処理中の項目?
Current Itemtってどうやって使うの?
う~ん。現在処理中の項目って具体的になに?
それはRetrieved Emailsの中身をみれば分かるよ
こんな感じでList形式の変数は、左の列に#0,1,2と番号が振られている行があるよ。
そしてその各々アイテムがある「複数行・2列」で構成されている。
ForEach処理ではこの行を#0から1行づつ読み込んでいくよ。
つまり今回のForEach処理は 0 1 2 の3回処理を繰り返すよ
つまりForrEach処理1回めのCurrent ItemはRetrieved Emailsの0行目
ForrEach処理2周めのCurrent ItemはRetrieved Emailsの1行目
ForrEach処理3周めのCurrent ItemはRetrieved Emailsの2行目
この値を順番に読み込んでいるってことね!
その通り!
ForrEach処理の中の 項目をリストに追加アクションをみてみよう!
項目をリストに追加のアクションの中にCurrentItem[.From]っていう見たことない表記があるんだけど、これってどういう意味?
Current Item [.From]は何を指しているのか?
これはCurrent Item プロパティの[.From]の値を指しているよ。
具体的にどの部分?
下の図の赤枠で囲った部分になるよ。
つまり、Current Item[.From]の値は送信者のメールアドレスってことになるよ。
なるほど、Current Itemという変数に[.From]をくっつけることで、メールアドレスを取得出来るようになるってことね!
その通り!例えばCurrent Item[.Date]とすれば、メールを受信した日時を取得できるよ。
次のアクション[テキストの結合]って何?
では次のアクションの解説にすすみます。
テキストの結合って初めて使うアクションなんだけど、どうやって使うの?
まずはアクションの中身を開いてみてみよう!難しくないから大丈夫!
まずは1つめの[結合するリストをしてい]を見ていこう
[リストを結合する]ってことは、さっき作ったアドレスのリストを結合するってこと?
その通り!繰り返し処理で作成した、受信トレイに届いたメールの送信者のアドレスを結合していくよ
なんでそんなことするの?
詳しくは後で説明するけど、一言で言えばリストに記録されている人全員に一斉にメール送信するため。 では見ていこう!
結合したいAddress Listはこれ
この3つのメールアドレスを一つの文字列のなるように結合していく訳ね、
そう!でもここでちょっと一工夫が必要になるよ
どんな?
作成した文字列は、メールを送信する時の宛先として指定したいんだけど、この3つのアドレスが一つの長~~~い文字列として認識されると、間違った宛先になるよね
3つのアドレスが個別のアドレスとして認識出来るようにする必要がある訳ね
その通り!だから次はどうやって[区切る]かを解説していくよ
Outlookでメールを送信する際には、アドレスとアドレスの間に セミコロン ; を記入しましょう。
具体的にどうやったらいいの?
さっき紹介した[テキストの結合]アクションの中で指定できるので、見ていこう
カスタム区切り記号 ⇒ ; (他にも任意に設定できます)
上記の通りに区切ることができます。
セミコロンを含めた結合された文字列はどこに格納されているの?
このアクションで生成される[joinedText]の中に格納されているのでみてみましょう
赤線を引いている部分に セミコロン ; が付け加えられてテキストが結合されているのが分かります。
結合したメールアドレスで一括返信してみる
Listから取得してきたメールアドレスに一括返信してみましょう。
宛先に先ほどメールアドレスを結合した
以上の流れでOutlookの受信トレイに届いたアドレス全員に対して、メールを一括返信するフローが完成しました。
コメント