MailSlurp JS

Globals / MailSlurp

Class: MailSlurp

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 apiKey property when creating a new instance.

const MailSlurp = require('mailslurp-client').default;
const mailslurp = new MailSlurp({
 apiKey: 'xxxx'
})

Call methods

Most methods are asynchronous and return Promises. You can await the results or use .then(result => {}) Common controllers include the InboxController, EmailController and the WaitForController for receiving emails.

// call convenience functions
const email = await mailslurp.waitForLatestEmail(...args)

// call controllers to access full API methods
const alias = await mailslurp.aliasController.createAlias(...args)

// or create a controller
const inboxController = mailslurp.inboxController
const inbox = await inboxController.createInbox()

// use Promises methods if you prefer
mailslurp.getEmails(inbox.id).then(emails => {
   // handle emails
   console.log(emails))
 }

Hierarchy

  • MailSlurp

Index

Constructors

Properties

Methods

Constructors

constructor

Defined in src/.ts:108

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 })

Parameters:

NameTypeDescription
optsConfig

Returns: MailSlurp

Properties

aliasController

Readonly aliasController: AliasControllerApi

Defined in src/.ts:101


attachmentController

Readonly attachmentController: AttachmentControllerApi

Defined in src/.ts:95


bulkController

Readonly bulkController: BulkActionsControllerApi

Defined in src/.ts:98


commonController

Readonly commonController: CommonActionsControllerApi

Defined in src/.ts:97


contactController

Readonly contactController: ContactControllerApi

Defined in src/.ts:104


domainController

Readonly domainController: DomainControllerApi

Defined in src/.ts:103


emailController

Readonly emailController: EmailControllerApi

Defined in src/.ts:93


formController

Readonly formController: FormControllerApi

Defined in src/.ts:102


groupController

Readonly groupController: GroupControllerApi

Defined in src/.ts:105


inboxController

Readonly inboxController: InboxControllerApi

Defined in src/.ts:94


mailServerController

Readonly mailServerController: MailServerControllerApi

Defined in src/.ts:108


templateController

Readonly templateController: TemplateControllerApi

Defined in src/.ts:106


waitController

Readonly waitController: WaitForControllerApi

Defined in src/.ts:99


webhookController

Readonly webhookController: WebhookControllerApi

Defined in src/.ts:107

Methods

createInbox

createInbox(emailAddress?: string, name?: string, description?: string, expiresAt?: Date, favourite?: boolean, tags?: Array, teamAccess?: boolean, expiresIn?: number, useDomainPool?: boolean, inboxType?: “HTTP_INBOX” | “SMTP_INBOX”): Promise<Inbox>

Defined in src/.ts:171

Create 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.

summary Create an Inbox (email address)

Parameters:

NameTypeDescription
emailAddress?string-
name?string-
description?string-
expiresAt?Date-
favourite?boolean-
tags?Array-
teamAccess?boolean-
expiresIn?number-
useDomainPool?boolean-
inboxType?“HTTP_INBOX”“SMTP_INBOX”

Returns: Promise<Inbox>


createInboxWithOptions

createInboxWithOptions(createInboxOptions: CreateInboxDto): Promise<Inbox>

Defined in src/.ts:203

Create an inbox using CreateInboxDto options. More convenient that createInbox in some cases.

Parameters:

NameTypeDescription
createInboxOptionsCreateInboxDto

Returns: Promise<Inbox>


deleteEmail

deleteEmail(emailId: string): Promise

Defined in src/.ts:377

Deletes an email and removes it from the inbox. Deleted emails cannot be recovered.

summary Delete an email

Parameters:

NameTypeDescription
emailIdstringemailId

Returns: Promise


deleteInbox

deleteInbox(inboxId: string): Promise

Defined in src/.ts:216

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.

summary Delete inbox

Parameters:

NameTypeDescription
inboxIdstringinboxId

Returns: Promise


downloadAttachment

downloadAttachment(emailId: string, attachmentId: string): Promise

Defined in src/.ts:476

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.

summary Get email attachment bytes

Parameters:

NameTypeDescription
emailIdstringemailId
attachmentIdstringattachmentId

Returns: Promise


emptyInbox

emptyInbox(inboxId: string): Promise

Defined in src/.ts:227

Deletes all emails

summary Delete all emails in an inbox

Parameters:

NameTypeDescription
inboxIdstringinboxId

Returns: Promise


getAllEmails

getAllEmails(page?: number, size?: number, inboxId?: Array, sort?: SortEnum, unreadOnly?: boolean): Promise<PageEmailProjection>

Defined in src/.ts:392

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

summary Get all emails

Parameters:

NameType
page?number
size?number
inboxId?Array
sort?SortEnum
unreadOnly?boolean

Returns: Promise<PageEmailProjection>


getAllInboxes

getAllInboxes(page?: number, size?: number, favourite?: boolean, search?: string, sort?: SortEnum, tag?: string): Promise<PageInboxProjection>

Defined in src/.ts:262

List inboxes in paginated form. Allows for page , page size, and sort direction. Can also filter by favourited or email address like pattern.

summary List Inboxes Paginated

Parameters:

NameType
page?number
size?number
favourite?boolean
search?string
sort?SortEnum
tag?string

Returns: Promise<PageInboxProjection>


getAttachmentMetaData

getAttachmentMetaData(attachmentId: string, emailId: string): Promise<AttachmentMetaData>

Defined in src/.ts:509

Get attachment MetaData

MetaData includes name, size (bytes) and content-type.

summary Get email attachment metadata

Parameters:

NameTypeDescription
attachmentIdstringattachmentId
emailIdstringemailId

Returns: Promise<AttachmentMetaData>


getEmail

getEmail(emailId: string): Promise<Email>

Defined in src/.ts:438

Returns an EmailDto object with headers and content. To retrieve the raw unparsed email use the getRawEmail endpoints

summary Get email content

Parameters:

NameTypeDescription
emailIdstringemailId

Returns: Promise<Email>


getEmails

getEmails(inboxId: string, args?: GetMessagesOptions): Promise<EmailPreview[]>

Defined in src/.ts:416

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

summary Get emails in an Inbox

Parameters:

NameTypeDefault valueDescription
inboxIdstring-Id of inbox that emails belongs to
argsGetMessagesOptions{}-

Returns: Promise<EmailPreview[]>


getInbox

getInbox(inboxId: string): Promise<Inbox>

Defined in src/.ts:238

Returns an inbox’s properties, including its email address and ID.

summary Get Inbox

Parameters:

NameTypeDescription
inboxIdstringinboxId

Returns: Promise<Inbox>


getInboxes

getInboxes(): Promise<Inbox[]>

Defined in src/.ts:248

List the inboxes you have created

summary List Inboxes / Email Addresses

Returns: Promise<Inbox[]>


getRawEmail

getRawEmail(emailId: string): Promise

Defined in src/.ts:449

Returns 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

summary Get raw email string

Parameters:

NameTypeDescription
emailIdstringemailId

Returns: Promise


sendEmail

sendEmail(inboxId: string, sendEmailOptions: SendEmailOptions): Promise

Defined in src/.ts:461

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.

summary Send Email

Parameters:

NameTypeDescription
inboxIdstringID of the inbox you want to send the email from
sendEmailOptionsSendEmailOptions-

Returns: Promise


uploadAttachment

uploadAttachment(options: UploadAttachmentOptions): Promise<Array>

Defined in src/.ts:493

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.

summary Upload an attachment for sending

Parameters:

NameType
optionsUploadAttachmentOptions

Returns: Promise<Array>


waitForEmailCount

waitForEmailCount(count?: number, inboxId?: string, timeout?: number, unreadOnly?: boolean): Promise<EmailPreview[]>

Defined in src/.ts:356

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.

summary Wait for and return count number of emails

Parameters:

NameType
count?number
inboxId?string
timeout?number
unreadOnly?boolean

Returns: Promise<EmailPreview[]>


waitForLatestEmail

waitForLatestEmail(inboxId?: string, timeout?: number, unreadOnly?: boolean): Promise<Email>

Defined in src/.ts:290

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.

summary Fetch inbox’s latest email or if empty wait for an email to arrive

Parameters:

NameType
inboxId?string
timeout?number
unreadOnly?boolean

Returns: Promise<Email>


waitForMatchingEmails

waitForMatchingEmails(matchOptions: MatchOptions, count?: number, inboxId?: string, timeout?: number, unreadOnly?: boolean): Promise<EmailPreview[]>

Defined in src/.ts:331

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.

summary Wait or return list of emails that match simple matching patterns

Parameters:

NameTypeDescription
matchOptionsMatchOptionsmatchOptions
count?number-
inboxId?string-
timeout?number-
unreadOnly?boolean-

Returns: Promise<EmailPreview[]>


waitForNthEmail

waitForNthEmail(inboxId: string, ``: number, timeout?: number, unreadOnly?: boolean): Promise<Email>

Defined in src/.ts:307

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.

summary Wait for or fetch the email with a given in the inbox specified

Parameters:

NameType
inboxIdstring
``number
timeout?number
unreadOnly?boolean

Returns: Promise<Email>