Node.js

Parse Webhook

以下の例は、address@email.sendgrid.biz宛の全てのメールをhttp://sendgrid.biz/uploadにPOSTします。NodeとExpressフレームワークを使用したサンプルを紹介します。

Parse API settings pageで設定するパラメータは次のようになります。

1
Hostname: email.sendgrid.biz
1
URL: http://sendgrid.biz/parse

このシナリオをテストするために、以下のコードを作成して、isaac@email.sendgrid.bizにメールを送信します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var express = require('express');
var multer  = require('multer');
var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.use(multer());
});

app.post('/parse', function (req, res) {
  var from = req.body.from;
  var text = req.body.text;
  var subject = req.body.subject;
  var num_attachments = req.body.attachments;
  for (i = 1; i <= num_attachments; i++){
    var attachment = req.files['attachment' + i];
    // attachment will be a File object
  }
});

var server = app.listen(app.get('port'), function() {
  console.log('Listening on port %d', server.address().port);
});

Event Webhook

Event Webhookを利用するために、はじめにEvent Notificationの設定を行う必要があります。

このシナリオでは、Event Notification URLとしてPOSTしたいサーバ上のエンドポイント /event を設定していることを前提にしています。以下のようなコードでイベントを処理することができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var express = require('express');
var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.use(express.bodyParser());
});

app.post('/event', function (req, res) {
  var events = req.body;
  events.forEach(function (event) {
    // Here, you now have each event and can process them how you like
    processEvent(event);
  });
});

var server = app.listen(app.get('port'), function() {
  console.log('Listening on port %d', server.address().port);
});