1

Due to regulations we have to create a solution that communicates over smtp/pop3 (basically RPC over SMTP/POP3) only.

Messages are sent from one application with SMTP, delivered to a mailbox, and picked up by another application with POP3, whereafter it delivers an answer with SMTP, and this goes on in a circle.

Estimated average message size is 40kB and estimated daily message count is 12-15 millions. This will be distributed to a small amount of user accounts, aproximately 10. No mail should be stored for a long time, it's deliver, pickup, delete.

We plan on using hardware with fusionio storage, and postfix for the SMTP part but are looking for a, preferably, open source POP3 software that can handle these volumes.

I've been looking at Dovecot, and it might be the best solution, but I'm worried that due to it's primarily focus on IMAP has some performance disadvantages for POP3.

webern
  • 13
  • 2
  • Just out of curiosity: What kind of regulation requires such madness? – Sven May 14 '13 at 08:33
  • The Government, SMTP is the only allowed protocol for asynchronous data traffic. – webern May 14 '13 at 08:55
  • Well, there was someone completely *understanding* what he was regulating... Anyway, in this case is it really necessary to deliver to a POP server or could the SMTP deliver the message directly to your application or could your app even contain a small SMTP server tailored to this purpose? – Sven May 14 '13 at 09:03
  • I do not control the application, I merely handle the SMTP/POP3 part. I can always suggest that they implement a SMTP server in their application. – webern May 14 '13 at 10:52

2 Answers2

0

Dovecot will be fine.

The performance will only get bad (I mean not that good) if many messages accumulate in a single mailbox. If you delete them soon it will be OK.

Another thing is to use maildir. Avoid mbox as it has problems with concurrent access.

cstamas
  • 6,607
  • 24
  • 42
0

I think that if you have 2 criteria filled, you can use Dovecot as an effective POP3 server. First, the largest overhead for POP3 is obtaining file sizes, unless there is an index for the directory. Make sure to use the Dovecot LDA, as it will keep a very effective count of the message sizes and numbers every time it updates the directory, meaning a POP3 process connecting to the maildir will not have to scan the whole directory first. Second, if you use mumtiple servers, have a good look at Director, as it will ensure that users always connect to the same server, which will keep index and non mail retrieval operations at a minimum.

You may also find that indexing is useless, if the clients connect often enough that the number of messages in the maildir/mbox remains small (I'm sure there is a sweet point between the cost of scanning a directory, and the smaller incremental costs of updating an index, I wouldn't hazard a guess where though..)

NickW
  • 10,183
  • 1
  • 18
  • 26
  • Thanks for the input. Mails are supposed to be fetched regularly (I've been told that they continuously process the accounts). Luckily this is a test environment, so if hicup should occur we can always scratch the maildir, although that shouldn't happen to often. – webern May 14 '13 at 10:54