This jobs is only for those who already have done similar tasks .
It consist of two parts.
A. Email engine :
non visual class to handle all needed to support the UI .
I attached a Delphi pas file with draft of classes architecture, key methods and properties .
This draft more or less states the requirements without getting into details too much.
while implementing you might see that more details/capabilities is needed .
No database handling is needed but the email engine should persist its data into a local cache files (folders list ,messages headers + body) .
the cache is used to for performance only and can be reset at any stage .
data to be stored in cache
1. Complete list of folders
2. List of messages per folder (headers only)
3. Last X messages body
B. user interface
should use Devexpress components and based on their mailClient sample project .
[login to view URL]
screen layout contains :
- accounts combo
- folders tree
- messages list
- focused message viewer , 3 optional layouts( viewer on the side , bottom, without)
- support mail viewer by using 3 different components : twebbrowser , thtmlviewer . trichedit
(support all of them , using the one according to what is defined in settings)
- The screen and fields are right to left aligned .
Compose mail screen
- email composing using two different components (dhtmledit, trichedit)
with common rich text options, attachments , signatures (including images)
(support all of them , using the one according to what is defined in settings)
- using - Auto complete for email address (using stub function , I'll replace later)
- Signatures management (add/update/delete/choose html signature (including images))
- packed into one component/class that works in conjunction with TemailEngine and can be used without
email screen
It should behave like Gmail app on smartphone
On startup
1. Folders list is displayed from the cache
2. Folders list is loaded from the server (thread) and updates cache/screen if needed .
when the user focus a folder :
1. The current cached messages list is displayed
2. New messages are loaded(thread) from the server and updates the cache/screen .
(only last X messages should be loaded,
if after the X messages are loaded there are more messages on the server which are not in the cache "load more messages" button should appear)
when user focus a message :
display message from the cache or download full body from the server
All is done in threads
the user can navigate between the folders and each navigation will start a new thread of loading messages list .
should be written in Delphi XE2
Support IMAP, pop3,smtp
should be tested with major IMAP servers (Gmail,Yahoo,Exchange)
should be tested against very large mailbox
Hello, If I am not mistaken we already talked about this project, but you have chosen another person to do it. I have many years Delphi experience, including threads and object oriented design. Have experience with devexpress control set (not recent, some years ago, but it still should help) Please let me know if you have questions.
i already work on Delphi XE2 with Data Snap Application in my Previous company. That time i used some third party components like as JCL, JVCL and SMDBGrid.