We are proud to announce a release candidate of our IMAP plugin. The plugin allows you to connect to an IMAP account and to retrieve all folders and messages of this account.
You could, for example, subscribe to one certain folder on an MS Exchange Server and transfer messages that were moved to this folder to your Servoy application. Users can then manage emails inside Outlook. Messages, that they think should be transferred to the Servoy application can be either manually move or by a rule inside Outlook. The Servoy application then simply checks that folder for new messages.
The plugin consists of 3 major classes:
- ImapAccount
- ImapFolder
- ImapMessage
plus 3 utility classes
- ImapQuota
- ImapAttachment
- EmailAddress
The ImapAccount offers:
- set server address, server port, username and password
- connect and disconnect to the account
- create a folder
- get the names of all folders (actually their path, e.g. “Projects/Customer A”)
- get a certain folder (by name) as an ImapFolder
- get all folders as an ImapFolder array
- get the root folder
The ImapFolder offers:
- open and close the folder
- message counts for total, unread, new and deleted messages
- get messages by either a given UID or index (also as “from … to”)
- get message UIDs (the ID of the message inside the folder)
- get message IDs (the unique ID that every message is given when sent, found in every mail header)
- folder navigation methods (getParent, getSubfolders, getFolder)
- getNextUID to retrieve the UID that the server will assign to the next new message in this folder
- rename a folder
- utility methods as getQuota (to see the usage statistics), getPermissions, getUIDValidity
The ImapMessage offers:
- get the subject, sent and received date, message ID, text and html part
- get attachments as ImapAttachment array
- get from, to, cc, bcc addresses as String or EmailAddress arrays
- get the flags of the message (answered, deleted, draft, flagged, recent, seen, other user flags)
- get all headers as String array
The utilities offer:
- ImapQuota: properties for name, limit and usage of a server quota
- ImapAttachment: properties for name and size, getData method to get a byte array
- EmailAddress:
- properties for real name and the address from something like “John Doe john@doe.com”
- validation of an address (checks the domain for an MX entry or tries to actually send a message and see if the recipient is rejected)
While there is currently no documentation, most methods do have proper tooltips. Some sample code is also available. I am currently working on a (little) sample solution that should help to get everybody going.
This release is only not called “final”, because I want a little feedback before I will release a “final” version.
About licensing: the model is not yet determined, but it goes in the direction of offering only developer licenses, that will allow one developer to use the plugin and distribute it with a solution that he sells. The pricing will be in the range of the menubar plugin from IT2BE.
In order to use the plugin, you need a license code. Anyone who is interested to test the plugin, please send a message to plugins@maison-partner.de. I will send you then the plugin plus a demo license code.
Patrick