Meteor is a relatively new JavaScript framework that is becoming quite popular. It lets you build real-time web apps rapidly. My fellow developer evangelist @scottmotte has already written about how you send email with Meteor. In this blog post, I want to expand on this and showcase how your Meteor application can receive inbound email, as well.

Route Requests with Meteorite

To receive email, you can use SendGrid’s inbound Parse Webhook. This will POST new emails to any URL you specify. Since we want to receive email with Meteor, we need to add a Meteor route.

Once you have Meteor installed, you want to set up Meteorite to handle packages. Then you can add the router functionality:
mrt add router

Next, modify your JavaScript to add your route and action:

Meteor.Router.add({
  '/inbound':  function() {
        post = this.request.body;
        color = post.subject;
        Colors.update({pos: 1},{ $set: { "name": color } } );

        return [200, "Success"]
        }
});

In this case I’m looking at the subject of the email and using that value to update the database.

To make this work in your application, log in to your SendGrid account and point the Parse Webhook to /inbound on your Meteor app. You can test webhooks locally with ngrok, or put it up on your own server.

See This Example Live

To showcase the real-time aspect of Meteor, I made an application that lets you change the background color of the page.

» Go to hook.meteor.com

Send an email to change@color.bymail.in and in the subject put the color you want.

The source code for the sample app is available on GitHub and for more details on the feature behind this tool, download the Parse Webhook Guide.



SendGrid Team
Expert advice and insight about all things email including best practices tips, examples, and advice for marketers, developers, and everyone in between.