こんにちは!
今回は「GASでSendgridのAPIを使ってメールを送る方法」についてお伝えしたいと思います。
メール配信サービスSendGridはメール送信システムで、APIが非常に充実しております。
GASにはメール送信関数が用意されて言いますが、今回はSendGridのメールAPI経由でメール送信する方法を紹介したいと思います。
UrlFetchApp.fetch()関数を使って、SendGrid経由でメールを送信する
GASからAPIにリクエストを送信する際はUrlFetchApp.fetch()が便利です。
以下に具体例を用いて説明します。
const SEND_GRID_ENDPOINT = 'https://api.sendgrid.com/v3/mail/send';
// API_KEYは盗まれないようにスクリプトプロパティで管理してもいいかもしれません
const SENDGRID_API_KEY = 'SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const sendEmail = (toEmail) => {
toEmail = 'to@example.com'; // ※説明用(パラメータでtoを渡してあげる)
console.log('send email start');
const body = {
'personalizations': [
{
'to': [
{
'email': toEmail,
}
],
'subject': 'タイトルテスト',
}
],
'from': {
'email': 'test@example.com', // 送信元メールアドレス
'name': 'テスト運営事務局', // 送信元表示名
},
'content': [
{
'type': 'text/html',
'value': `メール本文テスト`,
}
]
};
UrlFetchApp.fetch(SEND_GRID_ENDPOINT, {
method: 'POST',
headers: { 'Content-Type': 'application/json',
'Authorization': 'Bearer ' + SENDGRID_API_KEY},
payload: JSON.stringify(body),
});
console.log('send email end');
};
// 例:以下のようにsendEmailを呼び出すことでメール送信できる
sendEmail('aaa@example.com');
上記のsendEmail関数を別の関数内から呼び出してあげることで、メールが送信できます。
オプションは他にも色々あるので、SendGridのAPIドキュメントをご参照願います。
以上、お疲れさまでした〜🍵