Send email with Axios JS (and receive email too
Sending & Receiving Emails in Javascript made easy with Axios using MailSlurp API. Learn how to automate email testing and stay productive!
Axios is a popular HTTP request library for Javascript and NodeJS. It lets you fetch webpages and call APIs from the browser and NodeJS in a reliable and friendly way. With a MailSlurp account Axios can also send and receive emails!
What is Axios?
You can install Axios from NPM as follows:
npm install axios
Making a request is easy once installed:
const axios = require("axios");
axios
.get("/user?ID=12345")
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});
What is MailSlurp?
MailSlurp is a free email API. You can create email addresses on demand then send and receive emails from Javascript. You can create a free account then use the API Key to send and receive emails with Axios.
How to ues email with Axios
To use MailSlurp with Axios first import the library and your API Key.
const axios = require("axios");
const API_KEY = "your-mailslurp-api-key";
Create an inbox
First we can create an email address like so:
async function createInbox() {
// call MailSlurp createInbox endpoint
return await axios
.post(`https://api.mailslurp.com/createInbox?apiKey=${API_KEY}`)
.then((res) => res.data);
}
MailSlurp inboxes have real email addresses than can send and receive email.
{
"id": "123",
"emailAddress": "123@mailslurp.com"
}
Send an email
Sending an email is easy with Axios and MailSlurp. Simple POST
data to https://api.mailslurp.com/sendEmail
.
Include your API Key as a query parameter: ?apiKey=your-api-key
.
// send email from inbox 1 to inbox 2
// NOTE you can send emails to any address with MailSlurp
await axios({
method: "POST",
url: `https://api.mailslurp.com/sendEmail?apiKey=${API_KEY}`,
data: {
senderId: inbox1.id,
to: inbox2.emailAddress,
subject: "Hello inbox 2",
body: "Test from inbox 1",
},
});
Receive emails
You can receive emails with MailSlurp too!
// receive the email from inbox 2
const email = await axios
.get(
`https://api.mailslurp.com/waitForLatestEmail?apiKey=${API_KEY}&inboxId=${inbox2.id}`
)
.then((res) => res.data);
expect(email.from).toEqual(inbox1.emailAddress);
expect(email.subject).toEqual("Hello inbox 2");
expect(email.body).toEqual("Test from inbox 1");
Next steps
You can use Axios and MailSlurp for all your email needs. Sending, receiving, or even end-to-end testing.