SendGrid でのメール送信

SendGrid は App Engine のメール機能を強化します。SendGrid を利用すると、メールの到達性(到達率)を改善できます。また、アプリで送信されたメールの状況をありのままに把握できます。SendGrid インターフェースまたは API を介して、開封数、クリック数、登録解除、スパムレポートなどに関する統計情報を確認できます。

料金

App Engine のお客様は、Google Cloud Platform Console から SendGrid Email API プランに登録すると、毎月 12,000 通のメールを無料で送信できるようになります。お客様が有料パッケージを申し込むと Google に報酬が支払われます。

SendGrid ライブラリ

SendGrid 経由でメールを送信するには、SMTP リレーまたは Web API を使用します。

SendGrid を App Engine プロジェクトに統合するには、SendGrid クライアント ライブラリを使用します。

始める前に

SendGrid を使用してメールを送信するには:

  1. SendGrid Email API プランに登録します。
  2. Sendgrid API キーをメモしておきます。
  3. Google Cloud Platform Console で GCP プロジェクトを選択するか新規作成した後、App Engine アプリケーションが存在し、課金が有効化されていることを確認します。

    App Engine に移動

    プロジェクトに App Engine アプリケーションがすでに存在し、課金が有効化されていれば、ダッシュボードが開きます。そうでなければ、プロンプトの指示に従ってリージョンを選択し、課金を有効にします。
  4. app.standard.yaml の環境変数セクションに SendGrid API キーを追加します。
  5. SendGrid Node.js クライアント ライブラリをアプリケーションの package.json に追加します。次に例を示します。
    npm install --save sendgrid

メールの送信

SendGrid インスタンスを作成し、それをメールの送信に使用します。

次のサンプルコードで、メールの送信方法とエラー処理の方法をご確認ください。

'use strict';

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');

// The following environment variables are set by app.yaml (app.flexible.yaml or
// app.standard.yaml) when running on Google App Engine,
// but will need to be manually set when running locally.
const SENDGRID_API_KEY = process.env.SENDGRID_API_KEY;
const SENDGRID_SENDER = process.env.SENDGRID_SENDER;
const Sendgrid = require('sendgrid')(SENDGRID_API_KEY);

const app = express();

// Setup view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// Parse form data
app.use(bodyParser.urlencoded({ extended: false }));

app.get('/', (req, res) => {
  res.render('index');
});

app.post('/hello', (req, res, next) => {
  const sgReq = Sendgrid.emptyRequest({
    method: 'POST',
    path: '/v3/mail/send',
    body: {
      personalizations: [{
        to: [{ email: req.body.email }],
        subject: 'Hello World!'
      }],
      from: { email: SENDGRID_SENDER },
      content: [{
        type: 'text/plain',
        value: 'Sendgrid on Google App Engine with Node.js.'
      }]
    }
  });

  Sendgrid.API(sgReq, (err) => {
    if (err) {
      next(err);
      return;
    }
    // Render the index route on success
    res.render('index', {
      sent: true
    });
  });
});

if (module === require.main) {
  const PORT = process.env.PORT || 8080;
  app.listen(PORT, () => {
    console.log(`App listening on port ${PORT}`);
    console.log('Press Ctrl+C to quit.');
  });
}

module.exports = app;

アカウントの詳細を追加し、メールアドレスや他のメッセージの内容を編集します。

メール設定の詳細と例については、SendGrid-Node.js ライブラリをご覧ください。

リアルタイム情報の取得

SendGrid はメールの送信だけでなく、メールの受信や webhook を使用して送信したメールを確認できます。

Event API

アプリケーションからメールの送信を開始すると、SendGrid が収集した統計情報を表示し、メール プログラムを評価することができます。このデータを表示するには、Event API を使用します。たとえば、受信者がメールを開いたりクリックしたりすると、SendGrid はわかりやすい JSON を Google App Engine アプリに送信します。これにより、イベントに対応するだけでなく、今後のためにデータを保存しておくこともできます。

Event API ドキュメントには webhook の設定方法が記載されています。また、9 つのイベントタイプや、イベントのコールバックに含まれるフィールドについても解説されています。

Inbound Parse API

SendGrid はメールを受信できます。サポート チケットの自動化など、インタラクティブなアプリケーションには Inbound Parse API を利用できます。

Parse API は新しいメールが利用できる場合にデータをアプリケーションに送信する webhook です。この場合、受信メールに関連付けられたドメインに新しいメールが到着すると webhook が呼び出されます。

送信者、受信者、件名、本文を別々のフィールドとして含む JSON として構成されたアプリケーションにメールが送信されます。最大 20 MB のファイルの添付が可能です。

Parse API ドキュメントには、メールと一緒に送信される追加フィールドだけでなく、DNS の設定や使用方法なども記載されています。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Node.js 用 App Engine スタンダード環境に関するドキュメント