ConnectorTypeIMAP
class connector_types.connector_type_imap.ConnectorTypeIMAP
Access an IMAP mailbox.
Supported commands
capabilities
Query server capabilities Returns a list of IMAP4 capabilities as responded by the server.list_folders
List available folders. Returns a list of dictionaries describing the folders on the IMAP server.folder_info
Fetch information about a folder Returns a dictionary containing the folder informationsearch
Search for messages in a folder. The folder can be specified in thefolder
input. Search criteria can be specified in thecriteria
input. Returns a list of message IDs.fetch
Fetch messages. Text payloads will be included in the outputs. Other payloads will be stored as Cloudomation Engine files if thestore_attachments
input is set to True The folder can be specified in thefolder
input. The message IDs to fetch can be specified in themessage_set
input. Returns a dictionary describing the fetched messages.add_flags
Add flags to messages. The folder can be specified in thefolder
input. The message IDs to fetch can be specified in themessage_set
input. The flags to add can be specified in theflags
input. Returns a dictionary describing the flags of the messages.get_flags
Get flags of messages. The folder can be specified in thefolder
input. The message IDs to fetch can be specified in themessage_set
input. Returns a dictionary describing the flags of the messages.remove_flags
Remove flags from messages. The folder can be specified in thefolder
input. The message IDs to fetch can be specified in themessage_set
input. The flags to remove can be specified in theflags
input. Returns a dictionary describing the flags of the messages.set_flags
Set flags of messages. The folder can be specified in thefolder
input. The message IDs to fetch can be specified in themessage_set
input. The flags to set can be specified in theflags
input. Returns a dictionary describing the flags of the messages.move
Move messages to a folder The source folder can be specified in thefolder
input. The target folder can be specified in thetarget_folder
input. The message IDs to fetch can be specified in themessage_set
input. Requires the MOVE capability of the IMAP server. See RFC 6851.delete
Delete messages. The message IDs to delete can be specified in themessage_set
input. Returns a dictionary describing the flags of the deleted messages.
Input Schema
-
schema_version
Type:
string
-
authentication
Type:
anyOf
Options: -
host
The remote hostname or IP address.
Type:
string
-
port
Type:
anyOf
Options: -
tls
If to connect using TLS/SSL.
Type:
anyOf
Options: -
mode
Type:
anyOf
Options:
Output Schema
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')