JavaScript/Node.jsからSendGridを使ってメールを送信する方法
- 2020年3月24日
- by SendGrid
- Category: 技術ネタ
この記事は How to Send Emails in JavaScript/Node.js with SendGrid の抄訳です。
Node.jsでアプリケーションを開発していると、プログラムからメール送信する必要に迫られることがあるでしょう。Twilio SendGridのメール送信APIはこの課題を解決してくれます。既にSendGridアカウントを持っていて、APIキーが環境変数に設定されていれば、以下のコードだけでJavaScriptでメールを送信できます:
const sgMail = require('@sendgrid/mail'); sgMail.setApiKey(process.env.SENDGRID_API_KEY); const msg = { to: test@example.com', from: 'test@example.com', subject: 'Sending with SendGrid is Fun', text: 'and easy to do anywhere, even with Node.js', html: '<strong>and easy to do anywhere, even with Node.js</strong>', }; sgMail.send(msg);
それでは一つずつ順を追って見ていきましょう。
開発環境のセットアップ
この記事の内容を進めるには以下のソフトウェアが必要です。インストールされていることを確認してください:
・Node.jsとnpm(最初にインストールしてください) ・SendGridアカウント ・SendGrid Nodeライブラリ |
Node.jsでWebアプリケーションを開発するのであれば、開発環境をセットアップするのにこちらのガイドも参考になるでしょう。
SendGridへのサインアップとAPIキーの作成
続いて、SendGridアカウントを作成しましょう。この記事の内容を進めるだけであればFreeプランのアカウントで十分です。アカウントを作成したら、以下のスクリーンショットのようにAPIキーを作成してください。APIキー名は何でも構いません。APIキーを作成したら画面を閉じる前にその内容をどこかに保存しておいてください!
APIキーは環境変数に保存すると良いでしょう。JavaScriptのコードに直接APIキーを書く必要がなくなります。環境変数 SENDGRID_API_KEY に先ほど作成したAPIキーを設定してください。環境変数の使い方についてはこちらのチュートリアルが参考になります。設定した環境変数はこの後で利用します。
Node.jsでメールを送信する
SendGridアカウントとAPIキーの準備ができたら、いよいよコードを書いてメールを送信します!ターミナル(コマンドプロンプト)を開いて、プロジェクトを実行するディレクトリに移動したら、package.jsonファイルを生成するために以下のコマンドを実行します。このファイルはnpmが依存関係を解決するためのものです:
npm init --yes
Node.js向けのSendGridヘルパーライブラリをインストールします:
npm install @sendgrid/mail
このディレクトリ内にindex.jsというファイルを作成し、以下のようなコードを書きます:
const sgMail = require('@sendgrid/mail'); sgMail.setApiKey(process.env.SENDGRID_API_KEY); const msg = { to: test@example.com', from: 'test@example.com', subject: 'Sending with SendGrid is Fun', text: 'and easy to do anywhere, even with Node.js', html: '<strong>and easy to do anywhere, even with Node.js</strong>', }; sgMail.send(msg);
SENDGRID_API_KEY環境変数にAPIキーが設定されているか確認してください。そして、コードが期待通り動作することを確認するために、変数toをご自身のメールアドレスに置き換えます。
最後に、ターミナルで以下のコマンドを実行してメールを送ってみましょう。
node index.js
受信トレイに以下のようなメールが届いているはずです!
次のステップは?
Node.jsから簡単なメール送信ができることは確認できましたが、次に行いたいことは何でしょうか?例えば、Inbound Parse Webhookを利用すると、受信メールを処理することができます。他にもたくさんの機能があるので、ぜひドキュメントをチェックしてみてください。