<!--
    $FML: chapter.sgml,v 1.1 2001/04/30 10:21:43 fukachan Exp $
-->

<chapter id="delivery">

   <TITLE> fml5 のメール配送システム </TITLE>

<sect1 id="fml5-delivery">

   <title> 
           fml4 と fml5 の相違点
   </title>

<para>
fml5 の最大の目的の一つは、メンバーリストの取得と操作の統合と抽象化です。
配送には抽象化された Mail::Delivery クラスを次のように使います。
</para>

<para>
Mail::Delivery::* に属するクラスは SMTP および LMTP 配送へのインターフェ
イスを提供します。

<screen>
    use Mail::Delivery::SMTP;
    my $service = new Mail::Delivery::SMTP;
    if ($service->error) { Log($service->error); return;}

    $service->deliver(
                      {
                          mta             => '127.0.0.1:25',

                          smtp_sender     => 'rudo@nuinui.net',
                          recipient_maps  => $recipient_maps,
                          recipient_limit => 1000,

                          mesage          => $message
                      });
</screen>

ここで $message は Mail::Message オブジェクトです。
このオブジェクトは
<screen>
header -> body
header -> preamble -> part1 -> part2 -> trailor (multipart)
</screen>
のようにオブジェクトが数珠つなぎになっているオブジェクトです。
</para>

<para>
Mail::Delivery は
Mail::Delivery 以下の派生クラス
SMTP
ESMTP
LMTP
へのインターフェイスを提供するアダプター層です。
</para>

</sect1>

</chapter>
