tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:フローでのメール送信とOutlook for Windows クラシックバージョンの組み合わせでの考慮ポイント

最近カスタマイズしていてハマった話。フローをつかってメール送信処理を実装したところ、受信したメールの本文のレイアウトが崩れているとフィードバックをもらいました。そのときのカスタマイズ方法としてはフローの変数でテキストテンプレート方の変数を用意してメール本文設定をしていました。


想定の送信結果はこうなる予定で

フィードバックのあった受信結果はこんな感じ。


そんなはずはと調査したところ、かなり特殊なケースで発生することが確認できました。まず、この事象について送信されたメール送信の本文自体がおかしくなっているわけではありません。メール受信者側でメールを開いた際の表示だけがおかしくなっているものとなります。


受信者側のメールツールが壊れているわけでもなく、用意されている仕組みが正しく動作した結果となります。その仕組とは「Outlook の不要な改行自動削除」の仕組みです。

すごく特殊なケースで消してほしくない改行が削除されるパターンの発生を確認しました。条件を以下にまとめます。

条件1:Outlook for Windowsでメールを開く

この事象の発生は「Outlook for Windows」で発生します。「Outlook for Mac」と 「Web版のOutlook」のページでは再現しませんでした。

条件2:クラシックバージョンのOutlookでメールを開く

Outlook for Windowsでも新しいバージョンであれば再現しませんでした。クラシックバージョンで開いたときのみ再現します。

条件3:メール本文で以下の組み合わせのときに発生

① メールアドレス + 改行 + 記号の組み合わせ

過去の実装で意外とこの組み合わせで設定したことがなかった気がするのでこれ自体がレアケースな気がします。ただ、必要であれば送信内容として違和感はないので発生しない組み合わせではありません。

記号については一部のみ調査でしたが概ねどれも再現しそうでした。
イコール、ハイフン、罫線などです。本文内の区切り文字で使用します。

②メールアドレスの内容で記号を含み特定の組み合わせとなっている

これがまた特殊だったのですが、「sample@example.com」というようなよくあるメールアドレスでは事象は発生しませんでした。


次の条件を満たすと発生します。
→ + や _ などの記号が含まれる かつ そのあとに文字列が4文字以上含まれる。

[発生しない]
sample@example.com
sample+abc@example.com
sample_abc@example.com

[発生する]
sample+abcd@example.com
sample_abcd@example.com


この記号のあとの4文字以上がこれはちょっと気付けないでしょうという感じでした。メールアドレスの + の記号は Gmailの場合など エイリアス(別名)機能で出てくるようなアドレスなので、これだけならテスト用途など意外では普通は使わないと一緒ん思ったりもしましたが、アンダーバーでも発生を確認し、そちらは一般的なメールアドレスで十分使用されていることが考えられます。

条件3:フロー経由のメール送信で発生

Salesforceのサポートに相談したときに確認したことでわかったのですが、フロー経由のメール送信で発生します。プロセスビルダーやワークフロールールは未確認ですが、ポイントとしては以下では発生しないことを確認しました。

活動のメール送信機能では発生しない。


これは差し込み変数が同じくあるもので試してみて再現を確認したので、フローメール送信のような自動化ツール経由では発生し、手動操作での活動メール送信では発生しないというようになっているみたいです。試してないですがもしかするとApexなどでも再現するのかもしれません。

対応方法

メール本文の調整が一番スムーズだと思います。

例) 罫線区切り文字を削除する または メールアドレスと記号の間にテキストとなるような値を差し込む。


これで回避は可能となります。一応、アウトルック側の設定の自動改行削除をしないような設定で対応するという方法もあるようですが、これは社外宛のときには使えない方法になると思います。

まとめ

以上のあたりが、フローでのメール送信とOutlook for Windows クラシックバージョンの組み合わせでの考慮ポイントとなりそうです。社内宛メールであればクラシックバージョンは使わないでくださいが可能かもしれませんが、お客様宛てのメールの場合はそうはいかないという点と、どちらにしても余計な混乱を招くことになるのでメール本文の組み合わせに気を使う対応をしておけば間違いないと思います。


上記の条件を満たす場面はかなりの特殊ケースだとは個人的に思いましたが0ではなそうです。(テストでのメールアドレス指定での送信という場面でしたが、設定作業時に気づけず、利用者側からのフィードバックで気付いた)。もしかすると他にも発生条件があって上のパターンだけでは再現しなかったりするかもしれませんが、おそらくはこのあたりの条件でOutlookの自動改行が動作すると思います。