前回の記事では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ディレクトリの中身はこんな感じになっています。
メール送信をするための実行ファイル作成
[php]
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);
[/php]
JavaScript(ECMAScript6)の文法を使って、”@sendgrid/mail”をオブジェクトとし、setApiKeyメソッドとsendメソッドを使ってトランザクションメールを送信します。
トランザクションメール送信の確認
$ pwd /Users/YOURUSERNAME/sendgrid_nodejs $ node index.js
index.jsをnodeコマンドで実行します。
コマンドを実行してもターミナル画面では反応はありませんが、メールは”sendgrid.net”経由で送信されます。