見出し画像

Laravel8でsendgridのDynamicTemplateを利用してみる

あまり書かれてなさそうだったので、さくっと調べて書いてみます。

準備

まずはsendgridの方でAPIキーの作成とTemplateの作成をしてください。
作成方法は他のかたも書かれているので、割愛。
こちらから作成可能:https://app.sendgrid.com/settings/api_keys
ぽちぽちするだけで十分だと思います。
Templateも直感的に作成できるので、さくっと作っちゃってください。

APIキーは.envに書いておくと良いと思います。

.env

SENDGRID_API_KEY=api_key.xxxxxxxxxxxxxxxxxxxxxxxxx

パッケージインストール

composer require sendgrid/sendgrid

PHPでの実装方法

すごく簡単に送れます。envからAPIKeyを取得して、jsonを作って、postするだけ!

$apiKey = getenv('SENDGRID_API_KEY');
$sg = new \SendGrid($apiKey);
$request_body = json_decode('{
 "from": {
   "email": "送信元メールアドレス",
   "name": "メールアドレスの名前"
 },
 "personalizations": [
   {
     "to": [
       {
         "email": "送信先メールアドレス"
       }
     ],
     "dynamic_template_data":{
       "data": "埋め込みたい文字列",
       "umekomi": "埋め込みたい文字列"
     }
   }
 ],
 "template_id": "TemplateID_xxxxxxxxxxxxxxxxxxxx"
}');
$response = $sg->client->mail()->send()->post($request_body);

dynamic_template_dataにテンプレートの変数を書きます。

テンプレート側では下記のように埋め込みます。

{{data}}

{{umekomi}}

これだけでDynamicTemplateを使えるので、簡単ですね!

HTMLをsendgrid側で書けるし、さらにViewも充実していてHTMLを書けない人にも作成できます。

すごく便利なので、使ってみてください。
sendgridは無料版もあり、12,000通/月まで無料なので簡単なシステムで導入するのもオススメですよ♪




この記事が気に入ったらサポートをしてみませんか?