[API v3] Official Mailjet API v3 NodeJS wrapper (EcmaScript 2015 experimental version)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md
config.json
example.js
index.js
mailjet-next.js
package.json
test.js

README.md

alt text

Mailjet EcmaScript2015 Wrapper

Please welcome the new Mailjet experimental EcmaScript API wrapper! If you want a Stable ES5 version, click Here

It is basically a translation, implementing the new EcmaScript specifications.

Mailjet is an Email Service Provider (ESP). Visit the website and get comfortable!

For more details, see the full API Documentation

Getting started

first, create a project folder

mkdir mailjet-project && cd $_

Installation

if you want to get a global installation, you can add -g

npm install mailjet-next

Show me the code

To authenticate, go get your API key, and API secret here, open your favorite text editor and import the mailjet module

import MailjetClient from 'mailjet-next';

let mailjet = new Mailjet('apiKey', 'apiSecret');

Get cosy with Mailjet

Save your API_KEY and API_SECRET:

echo 'export MJ_APIKEY_PUBLIC=MY_API_KEY' >> ~/.zshrc

echo 'export MJ_APIKEY_PRIVATE=MY_API_SECRET' >> ~/.zshrc

source ~/.zshrc

replace zshrc with bash_profile if you are simply using bash

And use it in your projects

const apiKey = process.env.MJ_APIKEY_PUBLIC;
const apiSecret = process.env.MJ_APIKEY_PRIVATE;

Store a Mailjet resource

// GET resource
let user = Mailjet.get('user');

// POST resource
let sender = Mailjet.post('sender');

Request your resource with a callback function

user.request((error, response, body) => {
	if (error)
		console.log (`Oops, something went wrong ${response.statusCode}`);
	else
		console.log (body);
});

Make the same request with a Promise

the request method actually returns a EventEmitter triggering success and error

user.request()
	.then((response) => {

	}, (error) => {

	});

Pass data to your requests

sender
	.request({ Email: 'mr@mailjet.com' })
	.then(handleData, handleError);

Pass parameters as well as a callback

let getContacts = Mailjet.get('contact');

getContacts.request({Limit: 3}, handleContacts);

Request a resource with an ID

getContacts
	.id(2)
	.request(handleSingleContact);

Request a ressource with an Action

var postContact = Mailjet.post('contact');

postContact.action('managemanycontacts')
	.request({ContactLists, Contacts})
	.then(handleData, handleError);

Send an Email

var sendEmail = Mailjet.post('send');

var emailData = {
    'FromEmail': 'my@email.com',
    'FromName': 'My Name',
    'Subject': 'Test with the NodeJS Mailjet wrapper',
    'Text-part': 'Hello NodeJs !',
    'Recipients': [{'Email': 'roger@smith.com'}],
}

sendEmail
	.request(emailData)
    .then(handleData, handleError);

Send two Emails

var emailData = {
    'FromEmail': 'gbadi@student.42.fr',
    'FromName': 'Guillaume badi',
    'Subject': 'Coucou Mailjet2',
    'Text-part': 'Hello World2',
    'Recipients': [{'Email': 'gbadi@mailjet.com'}],
}

var emailData2 = emailData;
emailData2['Text-part'] = 'This is another Email';

sendEmail
	.request(emailData)
    .then(handleData, handleError);

sendEmail
	.request(emailData2)
    .then(handleData, handleError);

Contribute

Mailjet loves developers. You can be part of this project!

This wrapper is a great introduction to the open source world, check out the code!

Feel free to ask anything, and contribute:

  • Fork the project.
  • Create a new branch.
  • Implement your feature or bug fix.
  • Add documentation to it.
  • Commit, push, open a pull request and voila.

TODO:

  • Add compatibility with duplicatefrom filter