ConnectorTypeIMAP
class connector_types.connector_type_imap.ConnectorTypeIMAP
Access an IMAP mailbox.
Supported commands
- capabilitiesQuery server capabilities Returns a list of IMAP4 capabilities as responded by the server.
- list_foldersList available folders. Returns a list of dictionaries describing the folders on the IMAP server.
- folder_infoFetch information about a folder Returns a dictionary containing the folder information
- searchSearch for messages in a folder. The folder can be specified in the- folderinput. Search criteria can be specified in the- criteriainput. Returns a list of message IDs.
- fetchFetch messages. Text payloads will be included in the outputs. Other payloads will be stored as Cloudomation Engine files if the- store_attachmentsinput is set to True The folder can be specified in the- folderinput. The message IDs to fetch can be specified in the- message_setinput. Returns a dictionary describing the fetched messages.
- add_flagsAdd flags to messages. The folder can be specified in the- folderinput. The message IDs to fetch can be specified in the- message_setinput. The flags to add can be specified in the- flagsinput. Returns a dictionary describing the flags of the messages.
- get_flagsGet flags of messages. The folder can be specified in the- folderinput. The message IDs to fetch can be specified in the- message_setinput. Returns a dictionary describing the flags of the messages.
- remove_flagsRemove flags from messages. The folder can be specified in the- folderinput. The message IDs to fetch can be specified in the- message_setinput. The flags to remove can be specified in the- flagsinput. Returns a dictionary describing the flags of the messages.
- set_flagsSet flags of messages. The folder can be specified in the- folderinput. The message IDs to fetch can be specified in the- message_setinput. The flags to set can be specified in the- flagsinput. Returns a dictionary describing the flags of the messages.
- moveMove messages to a folder The source folder can be specified in the- folderinput. The target folder can be specified in the- target_folderinput. The message IDs to fetch can be specified in the- message_setinput. Requires the MOVE capability of the IMAP server. See RFC 6851.
- deleteDelete messages. The message IDs to delete can be specified in the- message_setinput. Returns a dictionary describing the flags of the deleted messages.
Input Schema
- 
schema_version = '10.0'Type: string
- 
authenticationType: anyOfOptions:
- 
hostThe remote hostname or IP address. Type: string
- 
portType: anyOfOptions:
- 
tlsIf to connect using TLS/SSL. Type: anyOfOptions:
- 
modeType: anyOfOptions:
Output Schema
- 
resultData 
Example
List all available folders of a mailbox:
import flow_api
def handler(system: flow_api.System, this: flow_api.Execution, inputs: dict):
    folders = this.connect(
        connector_type='IMAP',
        authentication={
            'authentication_method': 'username_password',
            'username': '...',
            'password': '...',
        },
        host='...',
        port=...,
        mode={
            'mode_name': 'list_folders',
        },
    ).get('output_value')['result']
    this.log(folders=folders)
    return this.success('all done')
List all unread (unseen) messages in a folder:
import flow_api
def handler(system: flow_api.System, this: flow_api.Execution, inputs: dict):
    message_ids = this.connect(
        connector_type='IMAP',
        authentication={
            'authentication_method': 'username_password',
            'username': '...',
            'password': '...',
        },
        host='...',
        port=...,
        mode={
            'mode_name': 'search',
            'folder': 'INBOX',
            'criteria': [
                'UNSEEN',
            ],
        },
    ).get('output_value')['result']
    this.log(message_ids=message_ids)
    return this.success('all done')
Fetch a message:
import flow_api
def handler(system: flow_api.System, this: flow_api.Execution, inputs: dict):
    messages = this.connect(
        connector_type='IMAP',
        authentication={
            'authentication_method': 'username_password',
            'username': '...',
            'password': '...',
        },
        host='...',
        port=...,
        mode={
            'mode_name': 'fetch',
            'message_set': [
                '1,8:15',
            ],
        },
    ).get('output_value')['result']
    this.log(messages=messages)
    return this.success('all done')
Mark a message as unseen:
The flag which is used to track seen/unseen status might differ between IMAP implementations.
import flow_api
def handler(system: flow_api.System, this: flow_api.Execution, inputs: dict):
    folders = this.connect(
        connector_type='IMAP',
        authentication={
            'authentication_method': 'username_password',
            'username': '...',
            'password': '...',
        },
        host='...',
        port=...,
        mode={
            'mode_name': 'remove_flags',
            'message_set': [
                '15',
            ],
            'flags': [
                '\Seen',
            ],
        },
    ).get('output_value')['result']
    this.log(folders=folders)
    return this.success('all done')