I can heartily recommend Net::Server::Mail in conjunction with Net::Server::PreFork for this purpose. I've found this to be a very stable and performant solution (code I wrote for a client using this combination handles thousands of messages a second in production and runs stably without any need for maintenance apart from configuration).
Question though, are you really planning on storing the whole email in a database? There are seldom (IME) good reasons for doing that.
Update:Question answered :-)