1. TOPTOP
  2. Webサービス
  3. SendGrid

SendGridでトランザクションメールを送信する方法(その3)〜Node.jsでメール送信

sendgrid_tranzaction_mail_send_1_0

前回の記事(新しいタブで開く)ではSendGridのトランザクションメールを送信するために、macOSのターミナルからcurlコマンドを使って送信しました。今回の記事ではNode.jsを使ってトランザクションメールを送信する方法をご紹介します。

Node.jsでトランザクションメールを送信する

Node.jsを使ってSendGridのトランザクションメールを送信するにあたり、下記のGitHubのページを参考にしました。

Node.jsの環境確認

$ node -v
v8.11.3
$ npm -v
5.6.0

Node.jsはmacOSのターミナル画面より行います。まずNode.jsとnpm(Node Package Manager)のバージョンを確認します。SendgridのWeb API v3を操作するためには、GitHub(新しいタブで開く)に書かれているとおり、Node.jsの6、7、8のいずれかのバージョンを使いましょう。

API Keyを保存するためのファイルを作成

$ mkdir sendgrid_nodejs
$ cd sendgrid_nodejs
$ touch sendgrid.env

macOSのターミナル上でSendGridのトランザクションメールを送るためには、API Keyが必ず必要です。そのAPIキーを保存するために拡張子”.env”のファイルを作成します。ファイル名は任意です。

.envファイルの作成

$ pwd
/Users/YOURUSERNAME/sendgrid_nodejs
$ echo "export SENDGRID_API_KEY='YOURAPIKEY'" > sendgrid.env // sendgrid.envにAPI_Keyの書き込み
$ touch .gitignore
$ echo "sendgrid.env" >> .gitignore // .gitignoreファイルに"sendgrid.env"という文字列の追加
$ source ./sendgrid.env // シェルの設定を即座に反映させる

次に.envファイルの中でAPI keyを書き込んでSendGridでトランザクションメールを送るための環境設定を行います。

“sendgrid/mail”パッケージのインストール

$ npm install --save @sendgrid/mail
$ vi index.js

npmでSendGridでメールを送信するためのパッケージをインストールします。合わせてメール送信を実行するためのファイルを作成します。

sendgrid_tranzaction_mail_send_3_1

この時点でsendgrid_nodejsディレクトリの中身はこんな感じになっています。

メール送信をするための実行ファイル作成

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);

JavaScript(ECMAScript6)の文法を使って、”@sendgrid/mail”をオブジェクトとし、setApiKeyメソッドとsendメソッドを使ってトランザクションメールを送信します。

トランザクションメール送信の確認

$ pwd
/Users/YOURUSERNAME/sendgrid_nodejs 
$ node index.js

index.jsをnodeコマンドで実行します。

sendgrid_tranzaction_mail_send_3_2

コマンドを実行してもターミナル画面では反応はありませんが、メールは”sendgrid.net”経由で送信されます。