Introduction to Mailgun.js
Mailgun.js is a powerful Node.js client library for the Mailgun API. It provides a seamless way to send, receive, and track emails using Mailgun’s robust infrastructure. This guide will introduce you to Mailgun.js and provide you with practical examples of its many APIs.
Installation
npm install mailgun-js
Configuration
const mailgun = require('mailgun-js')({
apiKey: 'YOUR_API_KEY',
domain: 'YOUR_DOMAIN_NAME'
});
Sending an Email
const data = {
from: 'Excited User ',
to: 'foo@example.com',
subject: 'Hello',
text: 'Testing some Mailgun awesomeness!'
};
mailgun.messages().send(data, (error, body) => {
console.log(body);
});
Sending an Email with HTML
const data = {
from: 'Excited User ',
to: 'foo@example.com',
subject: 'Hello',
html: '<h1>Testing some Mailgun awesomeness!</h1>'
};
mailgun.messages().send(data, (error, body) => {
console.log(body);
});
List Members
const list = mailgun.lists('list@samples.mailgun.org');
list.members().list((error, members) => {
console.log(members);
});
Create Mailing List
const listData = {
address: 'developers@mailgun.org',
description: 'Mailgun developers list'
};
mailgun.lists().create(listData, (error, body) => {
console.log(body);
});
Add a Member to a List
const memberData = {
subscribed: true,
address: 'bar@example.com'
};
list.members().create(memberData, (error, body) => {
console.log(body);
});
Verify Email Address
const emailValidation = require('mailgun-js').validate;
emailValidation.get('test@example.com', (error, body) => {
console.log(body);
});
Sending Batch Messages
const batchData = {
from: 'Excited User ',
to: ['foo@example.com', 'bar@example.com'],
subject: 'Hello',
text: 'Testing some Mailgun awesomeness!'
};
mailgun.messages().send(batchData, (error, body) => {
console.log(body);
});
Example Application
Here’s a simple example of an application that sends a welcome email when a user registers:
const express = require('express');
const mailgun = require('mailgun-js')({ apiKey: 'YOUR_API_KEY', domain: 'YOUR_DOMAIN_NAME' });
const app = express();
app.use(express.json());
app.post('/register', (req, res) => {
const { email } = req.body;
const data = {
from: 'Excited User ',
to: email,
subject: 'Welcome!',
text: 'Thank you for registering with us.'
};
mailgun.messages().send(data, (error, body) => {
if (error) {
return res.status(500).send(error);
}
res.status(200).send('Welcome email sent');
});
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
Mailgun.js makes it simpler to manage your email workflows, and with these examples, you can integrate powerful email capabilities into your Node.js application with ease.
Hash: 0e6debbb2dcb79b425ebe28338ba37f49ad9af03448030fe5416e513d6a4871b