OutSystemsでSendGrid API v3をコールする。
SendGrid の WEB API v3 を試してみました。
JSONでリクエストを投げるだけでメール送信ができます。
Documentation画面からJSONを入力して簡単にテスト送信できます。
https://sendgrid.com/docs/API_Reference/api_v3.html
1.HeadersのAuthorizationに
「Bearer {API_KEY}」を入力。
({API_KEY}は、SendGridにログインしてSetting>API Keys から作成するキー)
2.Request Bodyに、下のサンプルのJSONが入っているので宛先などを修正して
「SEND REQUEST」をクリックするだけでメールが送れます。
{ "personalizations": [ { "to": [ { "email": "john.doe@example.com", "name": "John Doe" } ], "subject": "Hello, World!" } ], "from": { "email": "sam.smith@example.com", "name": "Sam Smith" }, "reply_to": { "email": "sam.smith@example.com", "name": "Sam Smith" }, "subject": "Hello, World!", "content": [ { "type": "text/html", "value": "<html><p>Hello, world!</p></html>" } ] }
Transactional Templatesで用意したメールテンプレートの文面を使って
メールを送ることもできます。
template_idでテンプレートを指定して、substitutionsで置換文字列を渡します。
{ "personalizations": [ { "to": [ { "email": "john.doe@example.com" } ], "substitutions": { "-name1-": "john", "-name2-": "doe" } } ], "from": { "email": "sam.smith@example.com" }, "template_id": "{Transactional Templatesのキー}" }
メールテンプレート
こんな風に置換されたメールが送信されます。
john
doe~本文~
このAPIをコールする処理をOutSystemsで作ってみました。
1.Consume REST APIを新規作成して、「Body」タブにJSONを貼り付ける。
2.「Headers / Auth」タブで、
Authorization(API_KEYを指定する)と
Content-Type("application/json"を指定)を追加する。
RESTの下に、Sendgrid/PostSendが作成されます。
JSONに対応するStructureも自動で作成されます。
SendGridのAPIはResponseのBodyが空で返ってくるようで
HTTPステータスコードで結果を取得するのですが
OutSystemsのREST APIを普通に実行するだけだと
ステータスコードを取れないようです。
REST APIの「On After Response」プロパティを設定し
下記のようにOnAfterResponseを用意して
その中でステータスコードをsession Variablesにセットして取得する必要があるようです。