表題の通り。
■ 環境
- SendGrid
- Node.js 8.10.0
■ TransactionalTemplate
APIを使用し、SendGrid経由でメールを送りたい。APIの使い方を見たりしていてSendGridには”Template“なる機能があることを知ったので試してみた。しかし思い通りの内容のメールで送る事ができなかった…。
sendgrid-nodejs
https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/mail/USE_CASES.md
テンプレートを適用して送信する
https://sendgrid.kke.co.jp/docs/Tutorials/A_Transaction_Mail/using_templates.html
上記URLを参照して試していたのだが、下記のような現象が…。もちろん自身のやり方がまずいのであろうが
1. ActiveなversionのTemplateが適用されない
APIを使ってメールを送ってみると、デフォルトの内容で送られてきた。反映されるのにタイムラグがあるのかと思って少々時間をおいて実施してみたが変わらず。いくつか試している中で下記のようにコメントアウトしたらTemplateに設定した内容で送られた。
const msg = {
to: 'recipient@example.org',
from: 'sender@example.org',
subject: 'Hello world',
// text: 'Hello plain world!',
// html: '<p>Hello HTML world!</p>',
templateId: '13b8f94f-bcae-4ec6-b752-70d6cb59f932',
substitutions: {
name: 'Some One',
city: 'Denver',
},
};
サンプルはGitHubに上がっていたものをそのまま使わせてもらっている。本文の箇所(“text“/”html“)をコメントアウトするとなぜか送る事ができた…。”subject“もTemplateで指定しているので不要だったのだが残しておいた。
2. 編集後の反映タイミングがわからない
Templateを編集した後でAPI経由でメールを送ると、編集前の状態で送られてしまう。これもタイムラグがあるのかと思い少々時間をおいて再度実施してみたが反映されず。別versionのものを作成し、”ACTIVE“を切り替え再度戻して、とやったところ反映された…。
他にも何点かよくわからない点があったが少々急ぎでいろいろ試したかったので、ここまでやったところでTemplateは一旦諦めた。後日時間がちゃんと取れる時に再挑戦することにする。
以上。