\chapter{Use cases}

Here follow typical use cases for \masqmail. If other \MTA{}s are better suited for certain use cases, it will be mentioned. The use cases are prestage for defining the requirements.

%FIXME: rewrite!
%       How do I write use cases??
%       Are use cases the right tool for what I need, at all??

The user writes email with one of the common programs (e.g. \path{/bin/mail} or \name{mutt}). \masqmail\ must provide an interface, to that prepared mail can be handled over.

\masqmail\ must deliver mail to its destination.

Mail must be send with different settings, if someone uses more than one internet connection.

If the machine is offline, no mail, destinated to the internet, must be send. It needs to be queued until an online connection gets established.

If the computer goes online, all mail for outside destinations, should be send through the active route.

Local mail should be send at once, independent of the online state.

\masqmail\ may act as \NAME{SMTP} server. To receive email from other hosts.

Mail for local users should be delivered by \masqmail\ itself or passed to \name{mail delivery agent}s.

\masqmail\ needs to provide the same interface as \sendmail\ has, for being a drop-in replacement.


%TODO: add Schaeffter's ideas here
\chapter{Requirements}

\section{Structure}
\section{Security}
\section{Usability}
\chapter{Security issues}

%TODO: write about:
% #ifdefs in code
% the single setuid root binary
