documentation icon indicating copy to clipboard operation
documentation copied to clipboard

node.js samples

Open coolaj86 opened this issue 9 years ago • 0 comments

Can we get some node.js samples in the docs? And how did golang make it ahead of node?

mailgun-request.js:

'use strict';

var request = require('request');

request({
  url: 'https://api.mailgun.net/v3/example.com/messages'
, method: 'POST'
, auth: { user: 'api', pass: 'key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }
, formData: {
    from: 'Excited User <[email protected]>'
  , to: [
      '[email protected]'
    , '[email protected]'
    ]
  , subject: '[Mailgun Test] Hello'
  , text: 'Testing some Mailgun awesomeness!'
  , encoding: 'utf-8'
  }
}, function (err, response, body) {
  var json = JSON.parse(body);
  console.log(json);
});

Or, for those that don't want to use request, which has a boatload of dependencies and features that aren't needed for mailgun (since it is so well-behaved), it can reasonably be done in-the-raw:

mailgun-raw.js:

'use strict';

var https = require('https');
var FormData = require('form-data');
var options;
var form;
var request;

options = {
  host: 'api.mailgun.net'
, port: 443
, method: 'POST'
, auth: 'api:key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
, path: '/v3/example.com/messages'
};

form = new FormData();
form.append('from', 'Excited User <[email protected]>');
form.append('to', '[email protected]');
form.append('to', '[email protected]');
form.append('subject', '[Mailgun Test] Hello');
form.append('text', 'Testing some Mailgun awesomeness!');

options.headers = form.getHeaders();

request = https.request(options);

form.pipe(request);

request.on('response', function (res) {
  console.log(res.statusCode);

  var data = '';
  res.on('data', function (chunk) {
    data += chunk.toString('utf-8');
  });
  res.on('end', function () {
    console.log(data);
  });
});

coolaj86 avatar Jun 23 '15 19:06 coolaj86