Package Exports
- mailpit-api
Readme
Mailpit API Client
A TypeScript client for interacting with Mailpit's REST API. Ideal for automating your email testing.
Installation
npm install mailpit-apiDocumentation
Detailed documentation, including all available methods and type definitions, is available.
Examples
Prerequisites: These examples require a Mailpit installation. See the Mailpit installation guide.
Basic Usage with NodeJS
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();Using with Playwright Tests
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!");
});