Create a new MailSlurp instance.
Contains top level convenience functions. Access the full API controllers as properties on the instance.
const MailSlurp = require('mailslurp-client').default
const mailslurp = new MailSlurp({ apiKey })
Readonly aiReadonly aliasReadonly attachmentReadonly bounceReadonly bulkReadonly commonReadonly contactReadonly domainReadonly emailReadonly emailReadonly formReadonly groupReadonly inboxReadonly inboxReadonly inboxReadonly mailReadonly mfaReadonly missedReadonly phoneReadonly rulesetReadonly sentReadonly smsReadonly templateReadonly trackingReadonly userReadonly waitReadonly webhookCreate a new inbox and with a randomized email address to send and receive from. Pass emailAddress parameter if you wish to use a specific email address. Creating an inbox is required before sending or receiving emails. If writing tests it is recommended that you create a new inbox during each test method so that it is unique and empty.
Create an Inbox (email address)
Optional emailAddress: stringOptional email address including domain you wish inbox to use (eg: test123@mydomain.com). Only supports domains that you have registered and verified with MailSlurp using dashboard or `createDomain` method.
Optional name: stringOptional name for an inbox.
Optional description: stringOptional description for an inbox.
Optional expiresAt: DateOptional expires at timestamp. If your plan supports this feature you can specify when an inbox should expire. If left empty inbox will exist permanently or expire when your plan dictates
Optional favourite: booleanIs inbox favourited.
Optional tags: string[]Optional tags for an inbox. Can be used for searching and filtering inboxes.
Optional teamAccess: booleanOptional flag to allow team access to inbox.
Optional expiresIn: numberOptional number of milliseconds to expire inbox after.
Optional useDomainPool: booleanOptional flag to use the MailSlurp domain pool for domain endings.
Optional inboxType: "HTTP_INBOX" | "SMTP_INBOX"Optional inbox type HTTP or SMTP
Create an inbox using CreateInboxDto options. More convenient that createInbox in some cases.
Permanently delete an inbox and associated email address as well as all emails within the given inbox. This action cannot be undone. Note: deleting an inbox will not affect your account usage. Monthly inbox usage is based on how many inboxes you create within 30 days, not how many exist at time of request.
Delete inbox
inboxId
Returns the specified attachment for a given email as a byte stream (file download). You can find attachment ids in email responses endpoint responses. The response type is application/octet-stream.
Get email attachment bytes
emailId
attachmentId
By default returns all emails across all inboxes sorted by ascending created at date. Responses are paginated. You can restrict results to a list of inbox IDs. You can also filter out read messages
Get all emails
Optional page: numberOptional page index in email list pagination
Optional size: numberOptional page size in email list pagination
Optional inboxId: string[]Optional inbox ids to filter by. Can be repeated. By default will use all inboxes belonging to your account.
Optional sort: SortEnumOptional createdAt sort direction ASC or DESC
Optional unreadOnly: booleanOptional filter for unread emails only. All emails are considered unread until they are viewed in the dashboard or requested directly
Optional searchFilter: stringOptional search filter
List inboxes in paginated form. Allows for page index, page size, and sort direction. Can also filter by favourited or email address like pattern.
List Inboxes Paginated
Optional page: numberOptional page index in inbox list pagination
Optional size: numberOptional page size in inbox list pagination
Optional favourite: booleanOptionally filter results for favourites only
Optional search: stringOptionally filter by search words partial matching ID, tags, name, and email address
Optional sort: SortEnumOptional createdAt sort direction ASC or DESC
Optional tag: stringOptionally filter by tag
Get attachment MetaData
MetaData includes name, size (bytes) and content-type.
Get email attachment metadata
attachmentId
emailId
List emails that an inbox has received. Only emails that are sent to the inbox's email address will appear in the inbox. It may take several seconds for any email you send to an inbox's email address to appear in the inbox. To make this endpoint wait for a minimum number of emails use the minCount parameter. The server will retry the inbox database until the minCount is satisfied or the retryTimeout is reached
Get emails in an Inbox
Id of inbox that emails belongs to
Optional inboxId: stringReturns a raw, unparsed, and unprocessed email. If your client has issues processing the response it is likely due to the response content-type which is text/plain. If you need a JSON response content-type use the getRawEmailJson endpoint
Get raw email string
emailId
Send an email from an inbox's email address. The request body should contain the SendEmailOptions that include recipients, attachments, body etc. See SendEmailOptions for all available properties. Note the inboxId refers to the inbox's id not the inbox's email address. See https://www.mailslurp.com/guides/ for more information on how to send emails.
Send Email
ID of the inbox you want to send the email from
Optional sendEmailOptions: SendEmailOptionsOptions for the email
Upload an attachment for use in email sending. Attachment contents must be a base64 encoded string. When sending emails with attachments first upload each attachment with this endpoint. Record the returned attachment IDs. Then use these attachment IDs in the SendEmailOptions when sending an email. This means that attachments can easily be reused.
Upload an attachment for sending
If inbox contains count or more emails at time of request then return count worth of emails. If not wait until the count is reached and return those or return an error if timeout is exceeded.
Wait for and return count number of emails
Optional count: numberNumber of emails to wait for. Must be greater that 1
Optional inboxId: stringId of the inbox we are fetching emails from
Optional timeout: numberMax milliseconds to wait
Optional unreadOnly: booleanOptional filter for unread only
Will return either the last received email or wait for an email to arrive and return that. If you need to wait for an email for a non-empty inbox see the other receive methods such as waitForNthEmail or waitForEmailCount.
Fetch inbox's latest email or if empty wait for an email to arrive
Optional inboxId: stringId of the inbox we are fetching emails from
Optional timeout: numberMax milliseconds to wait
Optional unreadOnly: booleanOptional filter for unread only
Perform a search of emails in an inbox with the given patterns. If results match expected count then return or else retry the search until results are found or timeout is reached. Match options allow simple CONTAINS or EQUALS filtering on SUBJECT, TO, BCC, CC, and FROM. See the MatchOptions object for options.
Wait or return list of emails that match simple matching patterns
matchOptions
Optional count: numberNumber of emails to wait for. Must be greater that 1
Optional inboxId: stringId of the inbox we are fetching emails from
Optional timeout: numberMax milliseconds to wait
Optional unreadOnly: booleanOptional filter for unread only
If nth email is already present in inbox then return it. If not hold the connection open until timeout expires or the nth email is received and returned.
Wait for or fetch the email with a given index in the inbox specified
Optional inboxId: stringId of the inbox you are fetching emails from
Optional index: numberZero based index of the email to wait for. If an inbox has 1 email already and you want to wait for the 2nd email pass index=1
Optional timeout: numberMax milliseconds to wait for the nth email if not already present
Optional unreadOnly: booleanOptional filter for unread only
The official MailSlurp Javascript library. A wrapper around the MailSlurp REST API.
Create an instance of this class to call MailSlurp API methods. Contains top level convenience functions. Access the full API controllers as properties on the instance.
Create instance
You must provide a configuration object with your API Key as the
apiKeyproperty when creating a new instance.Call methods
Most methods are asynchronous and return Promises. You can
awaitthe results or use.then(result => {})Common controllers include the InboxController, EmailController, SMSController and the WaitForController for receiving emails.