LoginSignup
12
7

More than 3 years have passed since last update.

Power Automate でテキスト形式のメールを転送する時に改行を保つ方法

Last updated at Posted at 2020-07-09

Power Automate を使用し受信したメールに一言添えて転送する

受信したメールを転送するだけ。

Office365 Outlook のトリガーとアクションを使って簡単に設定できる;

image.png
ところが、元の受信メールが「テキスト形式だった場合」転送されたメールで改行が崩れる。
image.png
参考:「テキストメール」と「HTMLメール」、特徴と違いを理解する

「新しいメールが届いたとき(V3)」からOutput される文字列の例;

image.png

黄色ハイライトの通り、
\r\n
が改行コードとして入っている。

と、言うことは、
1. テキスト形式のメールを受信した時には、[\r\n] が改行コードとして入っていた。
2. 転送をしようとしたら、転送メール自体はHTMLで書かれているので、「追加の一言」等は改行されている。
3. 転送メールに挿入した「テキスト形式の元メール」からは、メール送信の際には改行コードが消えている。

「メールの送信(V2)」からOutput される文字列の例;

image.png
改行コード \r\n が消えている。

Power Automate で [\r\n] を [<br>] に書き換える。

以下の方法で出力(メールの送信をしてみる)

image.png
(元々 動的コンテンツで [本文] だけを入れていてた、後述の [ちょっとした式] に変更した。メールを送信の本文中に [ちょっとした式] をそのまま挿入したら良い)

手を加えた方;
<br> が改行したいところに入力されている。
image.png
手を加えていない方;
\r\n も消えて、改行コードがなくなっている。※
image.png
※念の為に再確認しただけ。

Power Automate でやったこと

以下のExpressions を使って、改行コード(<br>) を挿入した(置換した)

何となく見やすい書き方
uriComponentToString(
  replace(
    uriComponent(
      triggerBody()?['Body']
      ), 
    '%0D%0A', 
    '<br>'
  )
)
Power Automate で使う用の書き方
uriComponentToString(replace(uriComponent(triggerBody()?['Body']), '%0D%0A', '<br>'))

各項目の説明(自分の理解なので間違っているかも)

項目 説明 参考
uriComponentToString URIエンコード文字列をデコード https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definition-language-functions-reference#uriComponentToString
replace [Body] の [%0D%0A] を [<br>] に置換
uriComponent URL の安全でない文字がエスケープ文字に置き換えられた、文字列の URIエンコード バージョンにする。
※ 要は[\r\n] を[%0D%0A] と表記する
https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definition-language-functions-reference#uriComponent
triggerBody()?['Body'] Input となるメールのBody 部分を引用
%0D%0A \r\n の16進数で表記(ここ大事) http://seclan.dll.jp/cccrlf.htm , https://qiita.com/uhooi/items/dc74ff3434aecb17faa2
<br> HTML 改行コード

結局のところ

上述のExpressions を使えば テキスト形式のメールも改行が出来る ということでした。
これは、メールの転送以外にもTeams への投稿などでも使う機会がありそうです。

12
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
7