mailpit-api - v1.5.3
    Preparing search index...

    mailpit-api - v1.5.3

    Mailpit API Client

    Package Version Test Suite Code Coverage Documentation

    A TypeScript client for interacting with Mailpit's REST API. Ideal for automating your email testing.

    npm install mailpit-api
    

    Detailed documentation, including all available methods and type definitions, is available.

    Prerequisites: These examples require a Mailpit installation. See the Mailpit installation guide.

    import { MailpitClient } from "mailpit-api";

    // Initialize the API client
    const mailpit = new MailpitClient("http://localhost:8025");

    // Send a message
    await mailpit.sendMessage({
    From: { Email: "user@example.test" },
    To: [{ Email: "rec@example.test" }],
    Subject: "Test Email",
    });

    // Get a summary of all messages
    const messages = await mailpit.listMessages();

    // Delete all messages
    await mailpit.deleteMessages();

    Use mailpit-api with Playwright as a custom test fixture to handle email testing.

    // fixtures.ts
    import { test as base } from "@playwright/test";
    import { MailpitClient } from "mailpit-api";

    type MyFixtures = {
    mailpit: MailpitClient;
    };

    export const test = base.extend<MyFixtures>({
    mailpit: async ({}, use) => {
    const mailpit = new MailpitClient("http://localhost:8025");
    await mailpit.deleteMessages();
    await use(mailpit);
    },
    });

    export { expect } from "@playwright/test";
    // tests/register.spec.ts
    import { test, expect } from "../fixtures";

    test("should receive welcome email after registration", async ({
    page,
    mailpit,
    }) => {
    // Register
    await page.goto("/register");
    await page.getByTestId("email").fill("test@example.test");
    await page.getByTestId("password").fill("password123");
    await page.getByTestId("submit").click();

    // Wait for success message on page
    await expect(page.getByTestId("success-message")).toBeVisible();

    // Get the welcome email
    const message = await mailpit.getMessageSummary();

    expect(message.To[0].Address).toBe("test@example.test");
    expect(message.From.Address).toBe("no-reply@your-app.test");
    expect(message.Subject).toBe("Welcome to Our App");
    expect(message.Text).toContain("Thank you for registering with our app!");
    });