【Automation Anywhere】Send Email コマンドのHTMLメールの表現力を上げるには

前回の記事「[Automation Anywhere と Office 365 でメール送信を自動化する](https://qiita.com/RPAbot/items/4c3e7b215027caef1240)」では、RPAで電子メールを送るためのSend Emailコマンドの下準備とコマンドのパラメータ設定方法について触れました。メッセージにはHTMLも選ぶことができ、フォント名、文字サイズ、太字、斜体、下線、文字色、ハイパーリンク、画像挿入といったことが可能です。しかし、これだけだと通常のダイレクトメールに使っている表現力に比べるとちょっと物足りません。行揃え、段落の回り込み、表組み、リスト等、ここにはない装飾を行うためにできることを研究しましたので紹介します。

対象

* Automation Anywhere Enterprise 11.3.2
* Automation Anywhere Community Edition

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/ab7244cb-a0de-3da8-d54e-5fdcba970737.png)

# まずは標準でできることを見てみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/badf0881-0caf-c09c-14e3-b7a407b36f52.png)

|項目|説明|不足している機能|
|:--|:--|:--|
|フォント名|12種類の欧文フォントのみ指定可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/50d8904e-cb76-c174-80d7-bcce577da40d.png)|日本語フォントや他の欧文フォントも指定したい。|
|文字サイズ|7種類のサイズから選択可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/bb931275-16b1-22ff-037e-17449ec6bf73.png)|あまり不足はないが、強いて言えば中間サイズのフォントも使いたい。|
|太字|ボールド/普通の切り替えが可能。|これはOK。|
|斜体|イタリック/普通の切り替えが可能。|これはOK。|
|下線|下線あり/なしの切り替えが可能。|これはOK。|
|文字色|フォントダイアログボックスで標準色および合成した色の指定が可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/f67f287b-6d77-4de1-be0a-f61561af1a8d.png)|これはOK。強いて言えば蛍光ペンの機能があるとよい。|
|ハイパーリンク|ダイアログボックスでプロトコルの種類を指定してURLの指定が可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/4957288b-02dc-a34c-c110-1ca39c8f27bb.png)|これはOK。|
|画像の挿入|ダイアログボックスで画像パスや代替テキスト、枠線の太さ、サイズを指定可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/3756eede-8dc0-e10a-f2cf-28c31489af01.png)|これはOK。|


ちなみに、HTMLでコンテンツを作成しているときに、うっかり「メッセージ」ラジオボタンをHTMLからテキストに戻してしまうと、それまでの装飾がすべてなくなってしまい、再びHTMLに戻しても再現しないので注意してください。その場合はいったん「キャンセル」ボタンをクリックして、前に保存した状態からもう一度やり直しましょう。また、コンテンツ編集はこまめに保存しましょう。

# ブラウザーやWordからコピペで入力
ところで、Send EmailコマンドのダイアログボックスでメッセージがHTMLになっているときのエディットボックスのクラス名を調べてみると「**Internet Explorer_Server**」でした。これは、Internet Explorerの表示エンジンの編集モードが貼ってあることになりますので、Internet Explorerで表現できるHTMLは基本的には表現できるはずです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/badf0881-0caf-c09c-14e3-b7a407b36f52.png)

しかし、ユーザーインターフェイスにはその表現力を活用する仕組みが残念ながらありません。ということで、他のエディター (ブラウザー、Word 等)で作成したコンテンツをHTMLとしてこのエディットボックスに貼り付ければ、うまく動作するはずです。これをやってみましょう。

### HTMLで組んだコンテンツをブラウザーで表示してコピペ
以下のようなコードを組んで置き、ブラウザーで表示させます。(Automation Anywhere社から来ていた実際のダイレクトメールを少し改造しました) 画像は所定のローカルの場所に置いておきます。

```dmail.html
<meta charset="utf-8"/>
<body bgcolor="#aaaaaa">
<table width="600" align="center">
<tr><td bgcolor="#ffffff">
<img src="d:\aa\aa-logo-dark-no-margins.png"><br/>
<img src="d:\aa\Community-E0.png"><br/>
お客様各位<br/>
<br/>
平素はお世話になっております。<br/>
今後ともよろしくお願いします。<br/>
<br/>
<b>The Automation Anywhere Team</b><br/>
</td></tr>
<tr><td bgcolor="black" align="center"><font color="white" size="2"><b>Get the most out of your RPA experience</b><br/>
Automation Anywhere experts are available to walk you through features and answer your questions.</font><br/><br/>
<font color="white"><a href="unsubscribe.htm">配信停止</a> | <a href="privacy.htm">プライバシー</a></font>
</td></tr>
</table>
</body>

```
ブラウザーで表示してみるとこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/91dec8de-1989-9661-0215-b105c9ba82d1.png)


これをブラウザー上で選択してクリップボードにコピーして、Automation AnywhereのSend Emailコマンドのダイアログボックスに貼り付けてみたいと思います。

貼り付けてみると、背景色以外は装飾も画像もきれいに貼り付けられているように見えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/031837f6-80b4-7c40-8d5c-2d8b4f477553.png)


このコンテンツを保存してSend Emailコマンドを実行してみると、実際に以下のメールが届きます。ダイアログボックスに貼り付けたときの通りにコンテンツが再現されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/4ef0571f-77b3-f860-f30e-3c993f18ae92.png)


### Wordで組んだコンテンツをコピペ
ご存じの通り、Microsoft Wordには以下のツールバーのようにいろいろな書式を設定する機能が備わっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/6d1ff792-44b7-354b-7dcd-c67588e6d234.png)

WordをはじめとするOfficeソフトウェアでコンテンツをクリップボードにコピーすると、HTML形式として認識されるため、ブラウザーのエディットボックスにHTMLコンテンツとして貼り付けが可能です。

そこで、以下のように装飾を施した本文をクリップボードにコピーして、Automation AnywhereのSend Emailコマンドのダイアログボックスに貼り付けてみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/7cf02d14-0d7e-9c18-7e38-1cfbbd3290a6.png)

貼り付けてみると、Wordアートで装飾した「取扱商品」のフォントの縁取りと、「有機DL」の倍角文字設定は外れてしまっていますが、その他はきれいに貼り付けられているように見えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/bb4addd3-2e12-02eb-2a0d-d4f7d69c7a3d.png)

このコンテンツを保存してSend Emailコマンドを実行してみると、実際に以下のメールが届きます。ダイアログボックスに貼り付けたときの通りにコンテンツが再現されていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/e8805d67-982d-ae03-3eab-38047b681663.png)


# 注意事項
HTMLとして貼り付けを行う際に注意しなければならないのが、**外部ファイルのCSSに設定した装飾情報**や、**インターネット上に置かれた画像**は結果に反映されないということです。特にインターネット上に置かれた画像は、一見エディットボックス内で正しく貼り付けられたように見えますが、コマンドを実行してみると以下のエラーが発生してしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/078b7f00-729a-f4da-fd49-d57a3206168f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/34b61f04-1a48-2041-070d-84892e90884c.png)


これはインターネット上の画像がそのままパスに指定されている場合 (https://*** といったパス) に発生するようです。その場合は、該当する画像をあらかじめローカルにダウンロードしておき、画像をエディットボックス上で選択して、パスをローカルのファイルに切り替えます。

その際、後でローカルのファイルを消してしまうと実行時に以下にメッセージが出てしまいますので、ローカルの画像ファイルは消さずにとっておいてください。(つまり、タスクボットのファイル .atmxの中に画像ファイルは保存されていません)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/de8caaee-1ce5-bf7f-b2d3-b98c35f26f12.png)

コンテンツをコピペした場合、Loopコマンドなど他のコマンドとの組み合わせで実行する前に、Send Emailコマンド単体で実行して、作成されたコンテンツでエラーが出ないかどうかをまず確かめてから、他のコマンドとのロジックの中に組み込むことをお勧めします。


# まとめ
いかがでしたでしょうか。Send EmailコマンドのHTMLコンテンツの編集ボックスでは、ツールバーに標準でついている装飾機能は決して多くないですが、他のアプリケーションからコピー＆ペーストをすることで表現力を上げられることがわかったかと思います。

最後までお読みいただきありがとうございました。