{"library":"mailslurp-client","title":"MailSlurp Client for Email and SMS API","description":"MailSlurp Client is the official JavaScript and TypeScript library for interacting with the MailSlurp Email and SMS API. It enables developers to programmatically create on-demand email addresses and phone numbers without managing a mail server, facilitating sending and receiving real emails and SMS messages directly from applications or automated tests. The library is currently stable at version 17.2.0 and maintains a regular release cadence. Its key differentiator is providing a fully functional, programmatic interface to an email and SMS infrastructure, making it ideal for robust end-to-end testing of communication workflows. It supports handling attachments, setting custom timeouts for message arrival, and offers both CommonJS and ES module import patterns. The client integrates with the standard `fetch` API and allows for custom `fetch` implementations.","language":"javascript","status":"active","last_verified":"Tue Apr 21","install":{"commands":["npm install mailslurp-client"],"cli":null},"imports":["import { MailSlurp } from 'mailslurp-client'","import { InboxController } from 'mailslurp-client'","import type { CreateInboxOptions } from 'mailslurp-client'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { MailSlurp } from 'mailslurp-client';\n\n// Assuming a test runner like Jest is present for 'expect'\n// In a standalone script, you might use console.assert or a custom check.\nconst expect = (value: any) => ({\n  toContain: (substring: string) => {\n    if (typeof value !== 'string' || !value.includes(substring)) {\n      throw new Error(`Expected \"${value}\" to contain \"${substring}\"`);\n    }\n  },\n  toEqual: (expected: any) => {\n    if (value !== expected) {\n      throw new Error(`Expected \"${value}\" to equal \"${expected}\"`);\n    }\n  }\n});\n\nasync function runMailSlurpExample() {\n  // Retrieve API Key from environment variables or provide directly\n  const apiKey = process.env.MAILSLURP_API_KEY ?? 'YOUR_MAILSLURP_API_KEY';\n  if (apiKey === 'YOUR_MAILSLURP_API_KEY') {\n    console.warn('WARNING: Replace \"YOUR_MAILSLURP_API_KEY\" with your actual MailSlurp API Key from mailslurp.com dashboard.');\n    return;\n  }\n\n  // Create a new MailSlurp client instance\n  const mailslurp = new MailSlurp({ apiKey });\n\n  console.log('Creating a new MailSlurp inbox...');\n  // Create a new random inbox for testing\n  const inbox = await mailslurp.inboxController.createInbox({});\n\n  console.log(`Inbox created with email address: ${inbox.emailAddress}`);\n  // Assert that the email address is valid\n  expect(inbox.emailAddress).toContain('@');\n\n  // Example: Send an email from the created inbox\n  const recipientEmail = 'test-recipient@example.com'; // In a real scenario, this could be another MailSlurp inbox\n  const emailSubject = 'Hello from MailSlurp!';\n  await mailslurp.sendController.sendEmailAndConfirm({\n    inboxId: inbox.id,\n    sendEmailOptions: {\n      to: [recipientEmail],\n      subject: emailSubject,\n      body: 'This is a test email sent using the MailSlurp client.',\n    },\n  });\n  console.log(`Email sent from ${inbox.emailAddress} to ${recipientEmail}`);\n\n  // To demonstrate receiving, let's assume `recipientEmail` is another MailSlurp inbox you control\n  // Or if sending to itself for loopback test (not typical, but for demonstration):\n  // const receivedEmail = await mailslurp.waitForController.waitForLatestEmail({\n  //   inboxId: inbox.id,\n  //   timeout: 60000,\n  // });\n  // console.log(`Received email with subject: \"${receivedEmail.subject}\"`);\n  // expect(receivedEmail.subject).toEqual(emailSubject);\n  console.log('MailSlurp client initialized and inbox created/sent email. Check your MailSlurp dashboard.');\n}\n\nrunMailSlurpExample().catch(console.error);\n","lang":"typescript","description":"This example demonstrates initializing the MailSlurp client with an API key, creating a temporary email inbox, sending an email from that inbox, and includes a placeholder for demonstrating email reception. It highlights common use cases for automated email testing and integration workflows.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}