Yesterday I created the basics of a mailserver with the Indy 9 components. To avoid cluttering the main form, I’ve put the components on a Data Module, but that was not a good idea. Moving them to the main form made the code compile and run.
{note to self: Data Modules are for database-components}
As a database, I need a database that can either run embedded and be extended to client-server. FlashFiler 2 from TurboPower can do that, and so does NexusDB, but the free version of NexusDB has a limitation of 1 database per app, 5 tables per db, and 10000 rows per table. Not sure if that will do the trick for a mailserver. Buying (US$900) just to create a proof-of-concept seems a little irrational, even to me.
The plan to create a working mailserver is:
– design data model
– implement basic database structure
– implement accounts/aliasses/maillists
– implement receiving and storing messages for accounts/aliasses/maillists
– setup domainstructure / relaying-settings
– implement POP3 retrieval
– ask friends to test this version 🙂
If things get this far, and things go well, the following items are on the to-do list:
– logging
– basic anti-spam features
– basic anti-virus features
– IMAP4 capabilities
– external POP3-mailbox retrieval
– ODBC (or native Oracle/MSSQL) to support other databases for account/message-storage
– …