🔥
SendGridについて
SendGridのサービス
SendGridは全世界で利用されているメール配信サービスです。
クラウドサービスのためアカウントを作成するだけで即日メールを
送信でき、面倒でコストのかかるメールサーバの構築は不要です。
Twilio SendGridとなっているので、Twilio社のサービスかと思ったが、2019年にTwillio社が20億円で買収したらしい。SendGridは2017年に上場していたらしい。
SendGridを使ってメールを送る
Node.jsからメールを送る方法
- APIキーを発行する
- Node.js向けのSendGridヘルパーライブラリをインストールする
TypeScriptでやる場合は以下。
なるほどとても簡単。
以下手順
TypeScriptで行う想定。まずpackageをinstallする。
npm install @sendgrid/mail
npm install -D ts-node typescript
プログラムを書く
以下の2つファイルを作る。
-
index.ts
: メインプログラム。 -
sendgrid-util.ts
: SendGridへメールを送る関数を書いたもの。
sendgrid-util.ts
import sgMail from "@sendgrid/mail";
export type msgInfo = {
to: string;
from: string;
subject: string;
text: string;
};
sgMail.setApiKey(process.env.KEY);
const sendMail = async (info: msgInfo) => {
const msg = {
to: info.to,
from: info.from,
subject: info.subject,
text: info.text,
};
try {
const result = await sgMail.send(msg);
console.log(result);
console.log("success to sendGrid");
} catch (error) {
console.log("failed to sendGrid");
console.log(error);
}
};
export default sendMail;
index.ts
import sendMail, { msgInfo } from "./sendgrid-util";
const info: msgInfo = {
to: "test@test.com", // <送信元>
from: "test@test.com", // <送信先>
subject: "タイトル",
text: "本文",
};
sendMail(info);
実行する
npx ts-node index.ts
成功すると以下のようにレスポンスが返却される。
[
Response {
statusCode: 202,
body: '',
headers: {
server: 'nginx',
date: 'Sun, 19 Sep 2021 00:00:00 GMT',
'content-length': '0',
connection: 'close',
'x-message-id': 'PSVP1ng8QcOc-vwIVo2ItQ',
'access-control-allow-origin': 'https://sendgrid.api-docs.io',
'access-control-allow-methods': 'POST',
'access-control-allow-headers': 'Authorization, Content-Type, On-behalf-of, x-sg-elas-acl',
'access-control-max-age': '600',
'x-no-cors-reason': 'https://sendgrid.com/docs/Classroom/Basics/API/cors.html',
'strict-transport-security': 'max-age=600; includeSubDomains'
}
},
''
]
success to sendGrid
Discussion