Mail server connection using IMAP protocol

  
      try {
      const folders = imap.listFolders()
      console.debug('Available folders are:', folders)

      console.log('select INBOX')
      imap.selectFolder('INBOX')

      // Messages that have the \Recent flag set but not the \Seen flag.
      // This is functionally equivalent to "(RECENT UNSEEN)"
      const newSNs = imap.search('NEW')
      console.log(`INBOX contains ${newSNs.length} new messages`)
      if (newSNs.length) {
        let msg = imap.receive(newSNs[0])
        try {
          inspectMessage(msg)
        } finally {
          msg.freeNative()
        }
      }
    } finally {
      imap.freeNative()
    }
  

# new UBMailImap (paramsObj:  object)

Arguments:
  • paramsObj: object
    • host:  string

      mail server host

    • port:  string

      mail mail server port

    • user='':  string

      mail server login

    • password='':  string

      mail server password

    • OAuth2Token='':  string

      for XOAUTH2 authentication set this token to value, obtained using openid-connect. See ubqMailJob.js for example

    • tls:  boolean

      use tls on server request

    • fullSSL:  boolean

      Setup TLS before any IMAP command

    • auth:  boolean

      authentication required

    Mail server connection parameters

Methods

# addFlags (msgSeqNum:  number, flags:  string) instance

Add flags to the message with specified sequence number

Arguments:

# closeFolder () → boolean instance

Close a selected folder. (end of Selected state)

# copy (msgSeqNum:  number, destinationFolder:  string) instance

Copy a message with specified sequence number to the destination folder

Arguments:

# deleteMessage (msgSeqNum:  number) → TubMimeMessBind instance

Mark the message with specified sequence number as Deleted.

Real deleting will be done after successful closeFolder or expungeFolder.

Arguments:

# delFlags (msgSeqNum:  number, flags:  string) instance

Remove flags from the message with specified sequence number

Arguments:

# freeNative () instance

Close IMAP connection and release all resources ASAP

# getMessagesCount (folderNameopt:  string, criteriaopt:  string) instance

Get a message count from a specified folder what match specified criteria

Arguments:

# getMessageSize (msgSeqNum:  number) instance

Returns size of the message with specified sequence number

Arguments:

# listFolders (initialFolderNameopt:  string) → Array.<string> instance

List sub-folders of initialFolder. If initial folder is '' then list all available folders

Arguments:
  • initialFolderName = '': string

# move (msgSeqNum:  number, destinationFolder:  string) instance

Move a message with specified sequence number to the destination folder

Arguments:

# receive (msgSeqNum:  number) → TubMimeMessBind instance

Receive a full message from current folder by it's sequence numbers. To get s message sequence numbers use a search() method.

Messages indexes are in the order they're received

Arguments:

# selectFolder (folderName:  string) → boolean instance

Select a folder by it's name. Returns true on success or throw on error

Arguments:

# setFlags (msgSeqNum:  number, flags:  string) instance

Set flags to the message with specified sequence number

Arguments: