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

前回の記事(新しいタブで開く)ではSendGridのトランザクションメールを送信するために、macOSのターミナルからcurlコマンドを使って送信しました。今回の記事ではNode.jsを使ってトランザクションメールを送信する方法をご紹介します。
Node.jsでトランザクションメールを送信する
Node.jsを使ってSendGridのトランザクションメールを送信するにあたり、下記のGitHubのページを参考にしました。
- sendgrid/sendgrid-nodejs: The Official SendGrid Led, Community Driven Node.js API Library(新しいタブで開く)
- sendgrid-nodejs/packages/mail at master · sendgrid/sendgrid-nodejs(新しいタブで開く)
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_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.net”経由で送信されます。