sendmail および popper が適するシンプル・メール・アーキテクチャーには、メール・ユーザー・エージェント (MUA)、メール転送エージェント (MTA)、およびメール・デリバリー・エージェント (MDA) があります。MUA は、電子メールの送受信を直接に呼び出すクライアントのソフトウェアです。MUA の例としては Eudora、Netscape Navigator、pine および elm があります。MTA は、送信側のシステムから受信側のシステムへメッセージを実際に発送するソフトウェアです。sendmail は MTA です。しかしながら、sendmail は、他のプログラムに依存して非 SMTP ベースのトランスポート (例えば、UUCP ベースの トランスポートのほか、ユーザーのメールのスプール・ファイルへのローカル・デリバリーなど) を行う 以外の何ものでもありません。MDA は、受信したメールをユーザーの MUA へ引き渡すサーバーのソフトウェアです。popper は POP3 プロトコルを使用した MDA の例です。
これは、2 とおりの方法のいずれかで行われます。MUA がローカル・ホストで実行中の場合は、 sendmail のコピーを実行し、UNIX パイプにより メッセージをプロセスの標準入力に送信することによって、メッセージを送信することができます。
別の方法として (より一般的な方法として)、sendmail の 1 つのコピーがデーモンとして実行され、さらに MUA (ローカル・ホストもしくはリモート・ホストで実行) が sendmail デーモンに対する SMTP 接続をオープンして、送達すべきメッセージをその SMTP 接続によって送信します。この場合には、sendmail は SMTP サーバーとしての役割を果たし、一方、MUA は SMTP クライアントとしての役割を果たします。
この場合、受信側の SMTP サーバーは、すべてのメールを送信側で取り扱うローカル・ハブでも、受信側ですべてのメールを取り扱うリモート・ハブでも、あるいは受信側のホスト・システムでの SMTP サーバーでも構いません。
次のステップでは、sendmail は SMTP クライアントとしての役割を果たしており、幾つかの SMTP サーバーとの SMTP 接続を開始したあと、送達すべきメッセージを SMTP 接続によってそのサーバーに送信します。
SMTP サーバーとしての役割を果たしている sendmail デーモンが、着信の SMTP 接続を受け入れ、その SMTP 接続により送達すべきメッセージを受信します。(このことは、SMTP 接続によって、MUA からメッセージを受信することと同じです。)
このステップで、sendmail は /usr/lib/tsmail など、指定されたローカル・メーラー・プログラムを実行し、メッセージが UNIX パイプを通じてそのメーラーへ配信されるよう、伝送を行います。 メール配布プログラムは、メッセージを 受信側のメール・スプール・ファイルに付加します。これで、sendmail のメール送達における役割は終了します。
また、popper デーモンによって受信側の MUA は、メッセージの削除を指定できるため、メール・スプール・ファイルの管理も可能になります。
セキュリティー問題については、sendmail は RFC 2487 (「SMTP Service Extension for Secure SMTP over TLS」) をサポートしており、図 7 に示すように、インターネット上で専用の認証付き通信を提供します。z/OS® UNIX sendmail は、Open SSL でなくシステム SSL を使用します。
また、sendmail がメールを受信時に、メール・フィルターはサード・パーティー・ソフトウェアに対してインターフェースを提供して、メッセージがメール・トランスポート・システムを通過時に、それらのメッセージの妥当性検査と変更を行います。 フィルターはメッセージの接続情報、エンベロープ・プロトコル・エレメント、ヘッダー、および本体コンテンツを処理でき、メッセージの受信者、ヘッダー、本体を変更できます。 MTA 構成ファイルは、どのフィルターをどの順序で適用するかを指定し、複数の独立して開発されたフィルターを結合できるようにします。 メール・フィルターは、リモート側またはローカル側で実行できるデーモンを分離します。 メール・フィルターの機能については、図 8 を参照してください。