You're free to implement this functionality at any time. There are several good books on C++.
I might implement it myself some day, but I don't prioritize it.
I'm not against
the idéa of only using the database for persistence. But no-one has been able to tell me how to implement it without reducing performance a lot
(and making the software much more complex).
I'm far from convinced that storing the information in the database generally would give better performance than storing it on disk. Say for example that you have a 4MB message in a MySQL row and you want to read the To-header. Today hMailServer can easily parse just the header and doesn't have to read the entire message from disk. But if the entire message was stored in a MySQL blob, hMailServer would have to run several statements to find out where the header begins and ends, or it would have to download all 4MB into memory and then parse it. Then say that the user wants to sort all messages in a folder based on the To:-header. How would that work smoothly if the entire messages were stored in the database?
mySQL is quite capable of handling single records of any reasonable required size.
Depends on what MySQL version you're using. And try browsing the MySQL bugs database. I'm not sure that most people would agree with you that everything works smoothly when the records are larger than 16MB.