メールテンプレートの小技集

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[メール関係の設定のまとめ](https://qiita.com/Keiji_otsubo/items/160369c1c4c7dca02ea9)


+ [テキスト バージョンの電子メールでのフィールドの差し込み](https://qiita.com/Keiji_otsubo/items/e6f4e6e965427bd25530)

# Spring 21のSalesforceリリースバージョンの時点で、クロスオブジェクト式フィールドは、Lightning電子メールテンプレートでは使用できません

As of Spring 21' Salesforce release version,

Cross object formula fields are not available for Lightning Email Templates

Best Workaround is to use Classic Email Templates -> Visualforce Email Templates (Text classic email template also can't expose cross object fields)

```
<messaging:emailTemplate subject="Lightning Email Templates are Useless" recipientType="User" relatedToType="Opportunity">

<p>Account Name : {!relatedto.Account.Name}</p>
```

+ [【アイデア】Cross Object Merge Fields in Email Template](https://ideas.salesforce.com/s/idea/a0B8W00000GdifOUAR/cross-object-merge-fields-in-email-template)
+ [Can Lightning Email Templates call cross object merge fields?](https://salesforce.stackexchange.com/questions/334483/can-lightning-email-templates-call-cross-object-merge-fields)
+ [メールテンプレートに2つのレコードリンクを追加する方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FQvAX)
+ [Customer Portal Link URL in Email Template for object records automatically changing to Lightning Console link](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FXyI2)
+ [Hidden Field not working as Merge Field in Email Template](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000G36tw)



# 電子メールテンプレートの「日時」マージフィールドに日付が表示されない

+ [Date not displayed in 'Date Time' merge fields in email template](https://help.salesforce.com/s/articleView?id=000328070&type=1)

+ [メールテンプレートのフィールド値がメールで空白になっている](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FYTmJ)
HTMLバージョンに移動し、「faulty」値をコピーしてコードから削除し、再度貼り付けてテンプレートを保存しました。フィールドの値が表示されます！

# tag ({{{unsubscribe}}})
両端にスペースがいるみたい？
[Pardot error - HTML merge tag inside or outside anchor tag](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Dc6VhSAJ)


# mailのテンプレート内に表を追加する方法

[How to add table in an email template?](https://success.salesforce.com/answers?id=9063A000000ecO4)

ひな形を書いてくれていますね。

# HTMLメールで改行を入れる

[Email Template - New Lines - Carriage Return](https://developer.salesforce.com/forums/?id=906F00000008mYYIAY)

# メールテンプレートにスペースを入れる

[Add space to email template](https://success.salesforce.com/answers?id=9063A000000tMoTQAU)

```
<pre>タグを使うようです。
HTMLの<pre>タグは、フォーマット済みのテキストを示すために使用されます。
```

# Quick Actionでメール送信する

[Unable to create a 'Send Email' Quick Action](https://success.salesforce.com/answers?id=9063A000000lEjxQAE)

# Send an Email functionality in a custom button of a custom object

[Send an Email functionality in a custom button of a custom object](https://salesforce.stackexchange.com/questions/180045/send-an-email-functionality-in-a-custom-button-of-a-custom-object)



# This email template contains too much text

+ [This email template contains too much text - but it doesn't!](https://success.salesforce.com/answers?id=9063A000000tDJfQAM)
すぐに、上記URLを忘れるのでここに記録。
時間がある時に整理したい

以下にも同じ問題
+ [HTML Email Quick Actions fail to send Email if it involves pasting the copied text from MS word or MS Outlook Emails.](https://success.salesforce.com/issues_view?id=a1p3A0000003elLQAQ)

LEXのCase Feedからメールを送信するとき、以前のメールチェーンがメールの本文にあり、
以前の本文のサイズが32,000文字で、新しいメールの一部としてさらに数文字を追加してから、
電子メールを送信すると、「HTML本文：データ値が大きすぎます：........（最大長= 32000）」
というエラーが表示されます。

メール本文コンポーザーのテキスト全体を削除して単語を1つでも追加し、
再度メールを送信すると、新しいメールに単語が1つしか含まれていない場合でも、
メールアクションは上記と同じようにエラーを返します。

この問題を再現する別の方法があります。
Outlookメールボックス内の電子メールまたはMicrosoft Wordファイル
または一部のインターネット画像からコンテンツ（単一の文字または単語/スペースでも）を
コピー/貼り付けることです。

このエラーはLightningでのみ発生します

回避策
Microsoft WordやWebページなどの外部ソースからコンテンツをコピーして貼り付けると、
非表示の書式や非標準の文字も貼り付けられます。
エラーメッセージの内容が表示される場合は、MS Wordの書式設定がたくさん含まれています。

電子メールテンプレートで外部ソースのコンテンツを使用する際の考慮事項と
以下の記事で説明するとおり、EmailTemplateに固有の詳細がありますが、
このシナリオにも当てはまります。

[電子メールテンプレートで外部ソースのコンテンツを使用する際の考慮事項](https://help.salesforce.com/articleView?id=creating_emailtemplates_cut_n_paste.htm&type=5)

- Microsoft Wordからコピーする場合は、オートフォーマット機能をオフにするか、自動フォーマットを元に戻します。
- プレーンテキストモードで、Microsoft Notepad（PCの場合）またはTextEdit（Macの場合）などのテキストのみのエディターを使用して、不要な文字を削除します。ソースからコンテンツをコピーし、テキストのみのエディターに貼り付け、再度コピーして、テンプレートに貼り付けます。
- サポートケースを引き上げて、メール本文のCLOBサイズ制限を32Kから増やします。
- しばらくメールを送信するためにクラシックに切り替えます

# Outlook関係

Outlook で Inbox を使用しているときにこのメッセージが表示され、メールメッセージが 32 KBの制限より小さいと思われる場合は、メールメッセージの文書フォーマット XML により、HTML 本文サイズが 32 KB を超えている可能性があります。

何やら、Outlookに設定がありそう。

[エラー'あなたの電子メールは関連していましたが、サイズのために切り捨てられました' Outlook Integration](https://help.salesforce.com/articleView?id=000313590&language=en_US&type=1&mode=1)

# How to calculate dates in email templates?
メールテンプレート内で数式を使いたい。

アイデアにも上がっていたくらいですから、できないんですよね。
[Formula Editor for Email Templates](https://success.salesforce.com/ideaView?id=08730000000BpJR)

回避策は計算結果を数式項目として追加して、その項目をテンプレートで指定する。
+ [How to calculate dates in email templates?](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A8vzTSAR)
+ [How to insert a date calculation (field__c - TODAY()) into salesforce classic output template body HTML?](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A8xsNSAR)

これに関して似たような話。
差し込み表示する場合は、そのオブジェクトだけしかできない。
参照している先の値は取れないので、参照先の値を差し込む場合は
数式項目を作っておくしかないようです。

+ [Merge fields not populating in email templates](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A8YWpSAN)


# リッチテキストフェイールドにimageを出す。
HTMLメールで問題になるようです。
image関数は数式項目でしか使えないのかな？検証が必要そう。

[Image in Rich Text Field is not visible in HTML template emails](https://developer.salesforce.com/forums/?id=9060G0000005qoTQAQ)


# Sending Emails in Salesforce to Non-Contacts Using Apex
ユーザー、担当者、リード、個人取引先以外にテンプレートを使ってメール送信する少々トリッキーな手法が紹介されています。
https://opfocus.com/sending-emails-in-salesforce-to-non-contacts-using-apex/


# 関数IMAGEを使用して画像を表示する数式フィールドは実際には使えない
A formula field that uses the function IMAGE to display an image, will display the image correctly in an HTML email template preview, but will not actually include the image in emails sent.
関数IMAGEを使用して画像を表示する数式フィールドは、HTML電子メールテンプレートのプレビューで画像を正しく表示しますが、送信される電子メールには実際には画像を含めません。

[IMAGE formula field and merge fields in HTML email templates](https://trailblazer.salesforce.com/issues_view?id=a1p30000000T4EuAAK)

回避策があるけど、意味は良くわからん。

Webで利用可能な画像は、送信電子メールメッセージに正常に含まれていますが、これはすべての状況で適切な回避策とは限りません。