SendGrid の設定および動作確認方法を備忘録として残しておく

前提

  • 2024/4/1 以降の新しい方式
    • Domain Authentication
  • DNS: Amazon Route 53

実際の手順

  1. SendGrid 管理画面にて API Key を作成

    参考

  2. SendGrid 管理画面にて Domain Authentication の設定を行う

    Domain Authentication(SPF/DKIM設定)

  3. テストメールを送信して動作確認を行う

    参考

  4. メールテンプレートを作成

    参考

  5. メールテンプレートを使用した動作確認を行う

Curl での動作確認

テンプレートなし

[構文]

curl -X POST https://api.sendgrid.com/v3/mail/send \
     -d "JSONデータを指定" \
     -H "Authorization: Bearer <<API Key>>" \
     -H "Content-Type: application/json"

[JSON データ]

VS Code を使用している場合は JSON Parse & Stringify を使用すると JSON の Parse & Stringify が容易のため推奨

{
  "personalizations": [
    {
      "to": [
        {
          "email": "<<送信先メールアドレス>>"
        }
      ],
      "subject": "<<件名>>"
    }
  ],
  "from": {
    "email": "<<送信元メールアドレス>>"
  },
  "content": [
    {
      "type": "text/plain",
      "value": "<<本文>>"
    }
  ]
}

テンプレートあり

[構文]

curl -X POST https://api.sendgrid.com/v3/mail/send \
     -d "JSONデータを指定" \
     -H "Authorization: Bearer <<API Key>>" \
     -H "Content-Type: application/json"

[JSON データ]

  • VS Code を使用している場合は JSON Parse & Stringify を使用すると JSON の Parse & Stringify が容易のため推奨
  • dynamic_template_data 配下にパラメータを渡す
    • 手順4 のコードエディタ上では dynamic_template_data 配下のみを指定するため注意
{
  "personalizations": [
    {
      "to": [
        {
          "email": "<<送信先メールアドレス>>"
        }
      ],
      "dynamic_template_data": {
        "user_name": "ユーザ名"
      }
    }
  ],
  "template_id": "<<テンプレート ID>>",
  "from": {
    "email": "<<送信元メールアドレス>>"
  }
}

返信不可メールについて

今回は不要だったが返信不可メールについて対応が必要な場合は以下を参考にする
返信不可メールのベストプラクティス