テンプレートを使用したメール送信

テンプレートの有効化

メール送信時にTransactional Templateのテンプレートを使用するために、 templates フィルタを有効にして template_id の一つを設定します。

Example

1
2
3
4
5
6
7
8
9
10
{
  "filters": {
    "templates": {
      "settings": {
        "enable": 1,
        "template_id": "5997fcf6-2b9f-484d-acd5-7e9a99f0dc1f"
      }
    }
  }
}

このJSONをSMTPの X-SMTPAPI ヘッダもしくはWeb API v2 Mail Sendエンドポイントx-smtpapi パラメータに設定して使用します。

Web API v3 Mail Sendエンドポイントを使用する場合、template_idパラメータでテンプレートIDを指定します。

APIまたはUIを使用して、使用したいテンプレートのバージョンが有効になっているか確認してください。


本文と件名のタグ

Transactional Templateのテンプレートを有効化することで、送信されるメッセージ内の件名と本文が変更されます。

メッセージのコンテンツだけを表示したい場合、テンプレートの各フィールドにはトークンのみ記載してください。テンプレートのコンテンツのみ表示したい場合、メッセージフィールド(件名と本文)を空にしてください。

TextおよびHTMLのテンプレートについて

基本的に全てのメールにおいて htmltext 両方を用意することを推奨します。

テキストテンプレート内の <%body%> はメール送信リクエスト内の text プロパティの値に置換され、同様にHTMLテンプレート内の <%body%>html プロパティの値に置換されます。送信リクエストで text プロパティのみ指定された場合( html プロパティが指定されなかった場合)、最終的に送信されるメールはテキストパートのみのテンプレートが適用され、テキストパートのみのメールが送信されます。HTMLパートは送信されません。 <%subject%> プロパティはテキストテンプレート、HTMLテンプレート両方の値が適用されます。


SubstitutionとSection

テンプレートの件名と本文でSMTP APIのSubstitutionSectionを使用することができます。それらはメッセージ送信時に指定された値に置換されます。 例えば、次のような例を考えてみましょう。

1
2
3
4
5
<%body%>

Hello there :name!

You can buy it for only :price! Yay!

SMTPAPIを使用することで、 :name:price タグがどのように置換されるか見ていきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
  "to": [
    "alice@sendgrid.com",
    "bob@sendgrid.com"
  ],
  "sub": {
    ":name": [
      "Alice",
      "Bob"
    ],
    ":price": [
      "$4",
      "$4"
    ]
  },
  "category": [
    "Promotions"
  ],
  "filters": {
    "templates": {
      "settings": {
        "enable": 1,
        "template_id": "60414495-6787-441b-8b08-3979499bba7a"
      }
    }
  }
}

このテンプレートと置換文字の組み合わせで、件名に bacon 本文に Big news from Good Food Company! という内容を持つメッセージが生成されます。以下のようなメールがBrandonに送信され、Bob向けにもカスタマイズされたメールが送信されます。

1
2
3
4
5
6
7
Subject: Dear Alice, big sale on bacon!

Big news from Good Food Company!

Hello there Alice!

You can buy it for only $4! Yay!