Skip to main content

SELECT folder

This function selects a folder that mail commands get executed in.

It is absolutely crucial to run this before running any mail commands. Doing so otherwise will cause an error.

Usage

let selected = await imap.selectFolder("INBOX")

Response

This is the only function without a statically typed response, as the response can vary between providers. The returned promise has a type of Array<{ [key: string]: any }>.

For-certain keys are - emails, recent, flags & permanentFlags. However, it is still recommended to check for them (TypeScript insists on it anyway).

{
// --- for-certain keys ---
emails: 38,
recent: 0,
flags: [ 'Answered', 'Flagged', 'Draft', 'Deleted', 'Seen' ],
permanentFlags: [ 'Answered', 'Flagged', 'Draft', 'Deleted', 'Seen', '*' ],
// --- dynamically added keys ---
unseen: 1, // boolean as an int
uidvalidity: 1705347135,
uidnext: 40,
highestmodseq: 53,
urlmech: NaN,
annotations: 65536
}

After a few more providers will be tested, it will be possible to determine the for-certain keys and statically type them, however, until then the response in its entirety stays dynamic.