Tim

Tim is dead. I got bored with it. If you want, you can see the source code

What is Tim?

Tim is a very small, variably paranoid SMTP daemon. The idea is to make the code as compact as possible while still providing the features that are necessary to be paranoid and useful. It is also paramount to be careful about security issues (eg, buffer overruns) and memory leaks.

What does "TIM" stand for?

Nothing, and it's not TIM; it's Tim. I thought it would be quaint to name a program with a people-name. If you must know, it's named after "Tim the Enchanter" from "Monty Python and the Quest for the Holy Grail".

Paranoid?

Quite. Tim offers the following paranoia:

In all cases, 3rd party relaying is not allowed, and blacklists are always consulted. NULL FROM addresses are never allowed. FROM addresses from non-local IPs with no domain name are not allowed.

Features?

Indeed. Tim will handle aliases, vanity domains, and domain->spool mapping. domiain->spool mapping allows you to define which directory you want mail for a given domain to be dropped into. A lot of people seem to ask for this.

Also, Tim preforks children to handle incoming requests! I have no idea why every SMTP daemon doesn't do this. Tim will prefork the number of children you specify, fork more when the spares fall below a low water mark, and begin killing them when the number of spares exceeds a high water mark, within the bounds of a minimum and maximum number of children.

Small?

The most recently compiled Tim binary was less than 32K in size. By comparison, my Sendmail binary is 290K.

When will Tim be ready?

As soon as I'm done coding it. Probably some time in May or June of 1998.

Will Tim be freeware?

Tim will be grocery-ware. No licenses will be issued, but I'm going to ask that folks who use Tim professionally send me gift certificates for Lucky or Safeway so I can get some groceries.