Imap Foreign Data Wrapper


This fdw can be used to access mails from an IMAP mailbox. Column names are mapped to IMAP headers, and two special columns may contain the mail payload and its flags.





host (required)
The IMAP host to connect to.
port (required)
The IMAP host port to connect to.
login (required)
The login to connect with.
password (required)
The password to connect with.

The login and password options should be set as a user mapping options, so as not to be stored in plaintext. See the create user mapping documentation

The name of the column which will store the payload.
The name of the column which will store the IMAP flags, as an array of strings.
Wether to use ssl or not
The name of the charset used for IMAP search commands. Defaults to UTF8. For the cyrus IMAP server, it should be set to “utf-8”.
The column to use as the INTERNALDATE imap header.

Server side filtering

The imap fdw tries its best to convert postgresql quals into imap filters.

The following quals are pushed to the server:
  • equal, not equal, like, not like comparison
  • = ANY, = NOT ANY

ntThese conditions are matched against the headers, or the body itself.

The imap FDW will fetch only what is needed by the query: you should thus avoid requesting the payload_column if you don’t need it.