JavaScript/Node.jsからSendGridを使ってメールを送信する方法

JavaScript/Node.jsからSendGridを使ってメールを送信する方法

この記事は 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キーの作成

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を利用すると、受信メールを処理することができます。他にもたくさんの機能があるので、ぜひドキュメントをチェックしてみてください。

メールを成功の原動力に

開発者にもマーケターにも信頼されているメールサービスを利用して、
時間の節約、スケーラビリティ、メール配信に関する専門知識を手に入れましょう。