MailSlurp NodeMailer SMTP Usage

Use SMTP nodemailer with MailSlurp disposable email addresses. Configure SMTP client access to mailslurp inboxes.

You can use MailSlurp's unlimited throw away email accounts to send and receive email in NodeJS using Nodemailer. Here is an example using both clients:

const nodemailer = require("nodemailer")
const {MailSlurp} = require('mailslurp-client');

describe('node mailer smtp usage', () => {
    let config;

    beforeAll(() => {
        // provide a [mailslurp](/api/) API KEY
        const apiKey = process.env.API_KEY;
        expect(apiKey).toBeTruthy();
        // create config for clients and main class
        config = {apiKey};
    });

    it('can create smtp inbox then send email to it with nodemailer', async () => {
        const mailslurp = new MailSlurp(config);
        const inbox = await mailslurp.createInbox();
        expect(inbox.id).toBeTruthy();
        expect(inbox.emailAddress).toContain('@mailslurp.com');

        const transport = nodemailer.createTransport({
            host: "mx.mailslurp.com",
            port: 2525,
            secure: false
        })

        const sent = await transport.sendMail({
            from: '"Fred Foo 👻" <foo@example.com>',
            to: inbox.emailAddress,
            subject: "Hello ✔",
            text: "Hello world?",
            html: "<b>Hello world?</b>",
        });
        expect(sent.messageId).toBeTruthy()

        const email = await mailslurp.waitForLatestEmail(inbox.id, 30000, true)
        expect(email.subject).toContain("Hello")
        expect(email.isHTML).toBeTruthy()
    });
});