SendGridにはスケジュール送信機能があるのですが、すべてAPIベースに操作する必要があるため、わりと玄人向けな機能となっています。
sendgrid.kke.co.jp
スケジュール指定の上限は72時間といった制限もあるため、個人的には簡単なバッチプログラムを作って、通常のメール送信APIを呼び出すのが楽だと思っています(中の人がいうのもなんですが)。
先日から触っているIntegromatを使うと、このバッチプログラムを簡単に作ることができます。IntegromatのSendGridモジュールにある「Send an Email」と「Make an API Call」のどちらも使えるので、それぞれ紹介します。
Send an Emailを使う
「Send an Email」はWeb API v3のsend mailを簡単に呼び出せるUIとなってます。FromやTo、SubjectやContent Type、Contentなどを指定するだけです。Transactional Templateも使えます。
添付ファイルが使えるのもいいです。Send atパラメータも指定できるので、やろうと思えばここでスケジュール登録もできます。ただし、前述のとおり+下図の画面下メッセージにもあるように72時間という制限があるため、ここでは使いません。
メールの設定をしたら、モジュールの時計マークをクリックします。
するとIntegromatのスケジュール設定が表示されます。
選べるのは以下の6つです。
- At regular intervals…何分おきに実行するか選べます。Advanced schedulingで実行する日付の範囲指定、何月、何曜日まで設定可能です。
- Once…1度だけ実行します。年月日時分秒を指定します。
- Every day…毎日します。時分を指定します。
- Day of the week…実行する曜日と時分を指定します。
- Day of the month…実行する月と時分を指定します。
- Specified dates…月日時分を指定します。
今回は単発のスケジュール送信をするため「Once」を選び、送信する時間を指定しました。
設定はこれだけです。このシナリオを実行して、該当時刻になるとメールが飛びました。
Make an API Callを使う
「Make an API Call」はSendGridのWeb APIを自由に呼び出すためのメニューです。さきほどの「Send an Email」と違って「Make an API Call」はメール送信に特化したUIではないのですが、その分、自由度が高く、エンドポイントは自由に指定できますし、リクエストのJSONもそのままぶっこめます。
メールを送信する場合はURLに「mail/send」と入力します。最初ここはハマりやすいのですが、「https://api.sendgrid.com/v3/」が前提となっているので、それ以降のURLパスを指定する必要があります。
Bodyに送信リクエストのJSONをまるっと入れます。
これだけです。あとは前述の「Send an Email」と同じようにスケジュール登録すれば、該当時刻にメールが飛びます。
ノンコーディングで簡単にSendGridのスケジュール送信できました。かなり実用的だと思います。