<!--
<SECT1 ID="SENDMAIL"><TITLE>Mail Transfer Agents</TITLE>
-->
<SECT1 ID="SENDMAIL"><TITLE>メールトランスファエージェント (MTA)</TITLE>

<!--
<PARA>
i will describe three different MTA's in this section, Sendmail, Postfix
and Qmail. These are three MTA's that can be configured to use Ldap for
the retrieval of information. From personal experience, I must say that
Postfix is <EMPHASIS>much</EMPHASIS>
easier to set up than sendmail, but this may change in the future, as the
ldap support in sendmail develops to a more mature state.
I have not used qmail myself.
</PARA>
-->
<PARA>この章では、みっつの異なる MTA, つまり Sendmail, Postfix, qmail
について述べます。これらは LDAP から情報を取り出すように設定できる
MTA です。個人的な経験からすると Postfix の方が Sendmail よりも
<EMPHASIS>ずっと</EMPHASIS> 簡単に設定できますが、これについては将来、
Sendmail における LDAP サポートがさらに成熟の域に達することで
変わってくるかもしれません。qmail は使ったことがありません。
</PARA>

<!--
<SECT2><TITLE>Sendmail</TITLE>
-->
<SECT2><TITLE>Sendmail</TITLE>

<!--
<SECT3><TITLE>Ldap support in sendmail</TITLE>
-->
<SECT3><TITLE>Sendmail における LDAP サポート</TITLE>

<!--
<PARA>Sendmail has support for ldap since somewhere around version 8.8.x using
the map type <EMPHASIS>ldapx</EMPHASIS>.From version 8.10 and up an ldap
database type <EMPHASIS>ldap</EMPHASIS> is supported. Please note that the
ldap map support is not enabled per default in the RedHat package. Debian
versions 2.2 and later do have ldap support in their sendmail, I am
told. If you have to compile it yourself, please read the file <FILENAME
MOREINFO="NONE">sendmail/README</FILENAME> from the sendmail sources. It
contains valuable information about how to compile in the ldap support.</PARA>
-->
<PARA>Sendmail には、バージョン 8.8.x あたりから <EMPHASIS>ldapx</EMPHASIS>
というマップタイプを使うかたちで LDAP がサポートされています。
バージョン 8.10 以降では LDAP データベースタイプが
<EMPHASIS>ldap</EMPHASIS> としてサポートされています。
しかし LDAP マップのサポートは、RedHat のパッケージのデフォルトのままの設定では
無効になっているので、ご注意ください。
Debian のバージョン 2.2 以降には Sendmail の LDAP サポートがあるそうです。
自分でコンパイルする必要がある場合は、
Sendmail のソースの <FILENAME MOREINFO="NONE">sendmail/README</FILENAME>
というファイルを読んでください。このファイルには、LDAP サポート付きで
コンパイルする方法についての有益な情報が含まれています。
</PARA>

<!-- TYPO "Additionally, is" may be "Additionally, if"

<PARA>Both the old and the new ldap map type have the ability to look
up entries in an ldap database. There is one thing that must be noted
however. When a search is being done, only one result should be returned. If
more results are found, only the first is used. Additionally, is multiple
return values for that result are found, only the first is returned. Let's
take a look at the following example ldif file:</PARA>
-->
<PARA>これら新旧の LDAP マップタイプには、ともに LDAP データベース内のエントリを
検索する能力があります。ただし、ひとつ注意があります。
検索の完了時に結果がひとつしか返ってこないのです。
結果が複数あるとしても、最初のものだけが使われます。
しかも、その結果に返り値が複数あっても最初の値だけが返されるのです。
次の LDIF ファイルの例に注目してみましょう。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
dn: cn=mailuser1,ou=mail,dc=company,dc=com
objectclass: top
objectclass: foo
cn: mailuser1
mail: mailuser1@company.com
mail: info@company.com</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
dn: cn=mailuser1,ou=mail,dc=company,dc=com
objectclass: top
objectclass: foo
cn: mailuser1
mail: mailuser1@company.com
mail: info@company.com</PROGRAMLISTING>
</PARA>

<!--
<PARA>If a search is performed with a simple search filter like
<EMPHASIS>cn=mailuser1</EMPHASIS>, and the attribute that is asked for is
<EMPHASIS>mail</EMPHASIS>, only <EMPHASIS>mailuser1@company.com</EMPHASIS>,
is returned. To get both results, they should we stored in a single-valued
attribute with comma-separated values, like this:</PARA>
-->
<PARA>検索を <EMPHASIS>cn=mailuser1</EMPHASIS> のような
単純な検索フィルタで実行すると、求める属性が <EMPHASIS>mail</EMPHASIS>
だとしても <EMPHASIS>mailuser1@company.com</EMPHASIS> しか返されません。
両方の結果を得るには、これらは単一値を持つ属性に、コンマで区切られたかたちで
格納されていなければならないのです。次のようなかたちです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
mail: mailuser1@company.com,info@company.com
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
mail: mailuser1@company.com,info@company.com
</PROGRAMLISTING></PARA>

<!--
<PARA>An email message containing information related to this subject can be
found at the <ULINK URL="http://devel.linvision.com/doc/lih/alias_issues">LIH
home</ULINK>.</PARA>
-->
<PARA>この話題に関連した情報を含む電子メールメッセージを、
<ULINK URL="http://devel.linvision.com/doc/lih/alias_issues">LIH ホーム</ULINK>
で見ることができます。
</PARA>

</SECT3>

<!--
<SECT3><TITLE>System layout.</TITLE>
-->
<SECT3><TITLE>システムの配置</TITLE>

<!--
<PARA>When ldap maps are available, almost anything can be looked up in an
ldap database. What we would like to do is to simplify the configuration
of the following setup.</PARA>
-->
<PARA>LDAP マップが利用できるときには、ほとんど何でも LDAP
データベース内から探し出せます。
そこで、以下のような構成の設定を簡素化したいと思います。
</PARA>

<!--
<PARA>Let's say we have a medium-sized or large network where we recieve for
many domains. We have two mailhosts and two or three fallback hosts. This
setup will normally have four places where three types of information
are stored.
-->
<PARA>中規模もしくは大規模のネットワークがあることにしましょう。
たくさんのドメインのためにメールを受信します。ふたつのメールホストと、
ふたつ<!-- or three 無視 -->のフォールバックホストという配置です。
これだと通常は、以下の三種類の情報を格納する場所が、四箇所にまで
なってしまいます。

<ITEMIZEDLIST>

<!--
<LISTITEM><PARA>The mailhosts both need a file <FILENAME
MOREINFO="NONE"></FILENAME>, or traditionally <FILENAME
MOREINFO="NONE">sendmail.cw</FILENAME>, to store the domains for which they
should recieve mail. The fallback hosts keep the same information in the
<FILENAME MOREINFO="NONE">access</FILENAME> file, but they use it to list
the domains for which they should relay any incoming mail.</PARA></LISTITEM>
-->
<LISTITEM><PARA>両方のメールホストが <FILENAME MOREINFO="NONE"
>local-host-names<!-- 推測 --></FILENAME> ファイル (伝統に従えば <FILENAME
MOREINFO="NONE">sendmail.cw</FILENAME>) を必要とします。
これは、どのドメインへのメールを受信するかについて記録しておくものです。
フォールバックホストは同じ情報を<FILENAME MOREINFO="NONE">access</FILENAME>
ファイルに保持していますが、こちらは受信メールをどのドメインへ中継すべきか
一覧するために使います。
</PARA></LISTITEM>

<!--
<LISTITEM><PARA>The mailhosts both have a <FILENAME
MOREINFO="NONE">virtusers</FILENAME> file, which maps multiple adresses
(or entire domains) to a single virtual or local user.</PARA></LISTITEM>
-->
<LISTITEM><PARA>メールホストには両方とも <FILENAME MOREINFO="NONE"
>virtusers</FILENAME> ファイルがあります。このファイルで複数のアドレス
(あるいはドメイン全体) を単独の仮想ユーザやローカルユーザに割り当てます。
</PARA></LISTITEM>

<!--
<LISTITEM><PARA>The mailhosts both have an <FILENAME
MOREINFO="NONE">aliases</FILENAME> file, which maps virtual users to one
or more mail addresses or local users.</PARA></LISTITEM>
-->
<LISTITEM><PARA>両メールホストに <FILENAME MOREINFO="NONE">aliases</FILENAME>
ファイルがあります。このファイルで仮想ユーザを
メールアドレスやローカルユーザに割り当てます (複数も可)。
</PARA></LISTITEM>

</ITEMIZEDLIST>

<!--
If this information is stored in a single database, each host will read its
configuration from that database, which improves both the manageability and
the scaleability of the network. One could even think of a single host which
carries all data, mapped to with nfs. In such a case it makes no difference
anymore to which host we are connecting. To a user, they appear to be all
the same.</PARA>
-->
こうした情報がひとつのデータベースにまとめて格納されていれば、
各ホストがそのデータベースから設定を読み出すことによって、
ネットワークの拡張性と管理しやすさが向上します。
全データを nfs にマップさせて、それを単独のホストに持たせるような
形だって考えられるでしょう。<!--依然として意味不明...-->そのような場合も
接続するホストに違いはまったく生じません。ユーザにとっても
まったく同様に映ります。
</PARA>

</SECT3>

<!--
<SECT3><TITLE>Sendmail configuration file</TITLE>
-->
<SECT3><TITLE>Sendmail 設定ファイル</TITLE>

<!--
<PARA>To understand how this information is read from an ldap database
instead of the regular files a little background knowledge of the <FILENAME
MOREINFO="NONE">sendmail.cf</FILENAME> file is neccesary. The information
we're dealing with here is stored in two different ways. The <FILENAME
MOREINFO="NONE">local-host-names</FILENAME> file is read into a class
(class w, to be exactly, hence the old extension cw), while the virtusers
file is used through a simple map. The aliases file is also a map, but
it is defined in a different manner and used internally, instead of being
referred to in rules.</PARA>
-->
<PARA>この情報がどうやって LDAP データベースから標準ファイルの代わりに
読み出されるかを理解するには、<FILENAME MOREINFO="NONE">sendmail.cf</FILENAME>
ファイルについての背景的な知識が少し必要です。ここで扱う情報は、ふたつの
異なる方法で格納されています。<FILENAME MOREINFO="NONE"
>local-host-names</FILENAME> ファイルは、クラスに読み込まれます
(正確にはクラス w です。このゆえに昔は cw という拡張子が付いていました)。
一方で <FILENAME MOREINFO="NONE">virtusers</FILENAME> ファイルは
単純なマップを通して使われます。<FILENAME MOREINFO="NONE">aliases</FILENAME>
ファイルもマップですが、定義方法が異なりますし、内部で使われるので、
ルール内で参照されるわけではありません。
<!-- 無知！ class, map, rules について調査の必要あり！ -->
</PARA>

<!--
<PARA>When information is retrieved from a ldap database, it always ends
up being in a map. This is somewhat problematic with the information stored
in the <FILENAME MOREINFO="NONE">local-host-names</FILENAME> file, because
this used to be a class. I have been unable to fill the class with the
information from the map or something alike. That would be the easy way,
but I think it's not possible. (If I'm incorrect about this, please let
me know). Therefore, I had to define a new map, and insert rules in the
sendmail configuration to make sure that (almost) every time when a value
is looked up in the class, the new map is searched for the value too.</PARA>
-->
<PARA>情報が LDAP データベースから取り出されるときには必ずマップ内で
完結します。<FILENAME MOREINFO="NONE">local-host-names</FILENAME>
ファイルに格納されるべき情報にとっては、この点がやや問題となります。
このファイルの情報はクラスに使われるからです。著者はこれまでのところ、
マップ等からの情報でクラスを満たせたためしがありません。簡単にできそうな
ものですが、どうも不可能なようです (間違いがあれば、どうかお知らせください)。
そのため新しくマップを定義しなくてはなりませんでした。Sendmail の設定で、
w クラス内の値を読むときに (ほぼ) 毎回、そのマップから値が検索される
ようなルールを追加したのです。
</PARA>

<!--
<PARA>For the maps, the change of configuration is easy. A map is normally
defined with a name and database type, and some database-specific options,
(like the location of the file, for the normally used newdb database
types). So for maps, it suffices to change the definition of the map and
voila, we're done. Ldap maps have a few more options, some of which can be
predefined. They are explained in the following list (largely taken from
Booker Bense's document):
-->
<PARA>マップについては、設定変更が簡単です。通常、マップは名前と、
データベースタイプと、各データベース特有のオプション
(例えば通常使われる newdb データベースタイプでのファイルの位置など)
とで定義されています。それでマップについては、定義を変更するだけで
十分です。ほら、もうできました。さて、LDAP マップにはさらに幾つかの
オプションがあり、そのうちのいくつかは事前にグローバル定義<!-- predefine -->
しておけます。それらのオプションは次のリストで説明されています
(このリストは、大部分 Booker Bense の文書によります)。
</PARA>

<!--
<VARIABLELIST><TITLE>Ldap-specific map options in sendmail.cf</TITLE>
-->
<VARIABLELIST><TITLE>sendmail.cf における LDAP 特有のマップオプション</TITLE>

<!--
<VARLISTENTRY><TERM>-h</TERM>
<LISTITEM><PARA>Defines a space-separated list with hostnames of ldap
servers. All machines will be queried in this order, until a result is
found. This can be configured globally.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>-h</TERM>
<LISTITEM><PARA>スペース区切りで LDAP サーバのホスト名を定義します。
この順番で問い合わせを行なっていき、結果が出たらそこで終了します。
グローバルに設定できます。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>-b</TERM>
<LISTITEM><PARA>Defines the ldap search base, e.g. the ldap
directory you are going to search in. This can be configured
globally.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>-b</TERM>
<LISTITEM><PARA>LDAP 検索ベースを定義します。つまり<!-- e.g. だけど -->、
その LDAP ディレクトリ内だけを検索するのです。グローバルに設定できます。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>-k</TERM>
<LISTITEM><PARA>Defines the ldap search filter. It is a "sprintf" style
string that defines how the map takes it's input value and constructs an ldap
search. It has the form of an ordinary ldap search filter, with %s replaced by
the value that is searched for. To learn more about ldap search filters please
see <ULINK URL="http://www.cis.ohio-state.edu/htbin/rfc/rfc2254.html">RFC
2254</ULINK>. The search filter and the search base used above should define
a search that returns at most one entry. The ldap map will only use the
first entry it recieves. </PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>-k</TERM>
<LISTITEM><PARA>LDAP 検索フィルタを定義します。これは「sprintf」形式の
文字列で、マップが入力値をどのように受け取って LDAP 検索を構築するのか
定義します。検索する値を %s で置換した、一般的な LDAP 検索フィルタの
形式をとります。LDAP 検索フィルタについてさらに学びたい方は、
<ULINK URL="http://www.cis.ohio-state.edu/htbin/rfc/rfc2254.html"
>RFC 2254</ULINK> をご覧ください。ところで、この検索フィルタと
上記の検索ベースとでは、最大でもひとつのエントリしか返さないような
検索を定義すべきです。
LDAP マップは、受け取った最初のエントリだけを利用するのです。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>-v</TERM>
<LISTITEM><PARA>Defines the ldap attribute of which the
value will be returned by the map lookup. Explained in detail
later.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>-v</TERM>
<LISTITEM><PARA>どの LDAP 属性の値がマップ検索で返されることになるのか
を定義します。詳細は後述します。
</PARA></LISTITEM>
</VARLISTENTRY>

</VARIABLELIST>

<!--
<PARA>PLease note that all ldap options must be double-quoted and must
immediately follow the sendmail option. Here is an example:</PARA>
-->
<PARA>LDAP オプションはすべてダブルクォートし、
Sendmail オプションの直後に置かなければなりません。ご注意ください。
<!--nakano "S"endmail なのは故意?-->
例を挙げます。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
Kldapexamplemap ldap -h"localhost ldap.myorg.com" -b"ou=mail,dc=myorg,dc=com" -k"(&(objectclass=mailstuff)(uid=%s))" -v"mailaddress"
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
Kldapexamplemap ldap -h"localhost ldap.myorg.com" -b"ou=mail,dc=myorg,dc=com" -k"(&amp;(objectclass=mailstuff)(uid=%s))" -v"mailaddress"
</PROGRAMLISTING></PARA>

</SECT3>

<!--
<SECT3><TITLE>Schema</TITLE>
-->
<SECT3><TITLE>スキーマ</TITLE>

<!--
<PARA>For this particular setup I have defined a subtree
<EMPHASIS>mail</EMPHASIS> in the ldap directory, under which all mail-related
information will be stored. I t would have been possible to store some
of the user-related mail-information in the <EMPHASIS>ou=Users</EMPHASIS>
subtree, but I have specificalle chosen not to do this. When using a separate
subtree, all information for sendmail is stored in a single place, and,
when having many users, searches may be faster, because not the entire
<EMPHASIS>ou=Users</EMPHASIS> subtree needs to be searched, but only the
<EMPHASIS>ou=mail</EMPHASIS> subtree.</PARA>
-->
<PARA>著者は、この特別な設定のために、<EMPHASIS>mail</EMPHASIS>
というサブツリーを LDAP ディレクトリ内で定義しています。
この下にメール関連のあらゆる情報を格納するためです。
ユーザ関連のメール情報は <EMPHASIS>ou=Users</EMPHASIS> のサブツリー
に入れておくことも可能だったでしょうが、それはわざと避けました。
各ユーザと別に単一のサブツリーを使う方が、Sendmail のための情報が
すべて一箇所に格納されるので、たくさんのユーザがいるときの検索が
速くなるのです。なぜなら、検索する必要があるのは <EMPHASIS>ou=Users</EMPHASIS>
サブツリー全体ではなく、<EMPHASIS>ou=mail</EMPHASIS> だけだからです。
</PARA>

<!--
<PARA>In this subtree two kinds of records will appear.
-->
<PARA>このサブツリー内に二種類のレコードを作ります。


<ORDEREDLIST INHERITNUM="IGNORE" CONTINUATION="RESTARTS">
<LISTITEM>

<!--
<PARA>Entries that hold mappings from the <FILENAME
MOREINFO="NONE">virtuser</FILENAME> file and <FILENAME
MOREINFO="NONE">aliases</FILENAME> file, for a single virtual user. I have
chosen to store both mappings in a single entry, because this clarifies the
effect and configuration used. For this I have defined an objectclass
<EMPHASIS>inetmailrecipient</EMPHASIS>, and three attributes,
<EMPHASIS>mailid</EMPHASIS>, <EMPHASIS>mailacceptinggeneralid</EMPHASIS>
and <EMPHASIS>maildrop</EMPHASIS>.</PARA>
-->
<PARA><FILENAME MOREINFO="NONE">virtuser</FILENAME> ファイルや
<FILENAME MOREINFO="NONE">aliases</FILENAME> ファイルに由来する、
仮想ユーザひとりひとりの割り当てを保持するエントリです。
両ファイルからの割り当てを同じエントリに格納することにしました。
これによって、用いている設定や効果が明確になるからです。
これには、<EMPHASIS>inetmailrecipient</EMPHASIS> という objectclass と、
<EMPHASIS>mailid</EMPHASIS>, <EMPHASIS>mailacceptinggeneralid</EMPHASIS>,
<EMPHASIS>maildrop</EMPHASIS> というみっつの属性を定義しました。
</PARA>


<PARA><VARIABLELIST>

<!--
<VARLISTENTRY><TERM>inetmailrecipient</TERM>
<LISTITEM><PARA>This is a classification that tells us the entry is some
form of mapping from one or more real mail addresses and/or mail domains
to one or more real users.</PARA></LISTITEM></VARLISTENTRY>
-->
<VARLISTENTRY><TERM>inetmailrecipient</TERM>
<LISTITEM><PARA><!-- real が不明……とりあえず未訳(^^; -->
この階級は、このエントリが、
一つまたは複数の実メールアドレスやメールドメインから、
一人または複数人の実ユーザへのマッピングであることを示します。
<!--「階級」は定訳なのでしょうか?-->
</PARA></LISTITEM>
</VARLISTENTRY>

<!-- TYPO "normail" may be "normal" -->
<!--
<VARLISTENTRY><TERM>mailid</TERM>
<LISTITEM><PARA>This describes the mail addresses that this virtual
user recieves mail for. Can be in the form of normail addresses,
like <EMPHASIS>foo@myorg.com</EMPHASIS>, or complete domains like
<EMPHASIS>@my2nd.org</EMPHASIS>. Multiple of these attributes may be present,
but they should all contain only one value. For each of these id's mail is
sent to <EMPHASIS>mailacceptinggeneralid</EMPHASIS>.</PARA>
-->
<VARLISTENTRY><TERM>mailid</TERM>
<LISTITEM><PARA>この仮想ユーザが受信するメールアドレスを記述します。
<EMPHASIS>foo@myorg.com</EMPHASIS> のように普通のアドレスの形式でも結構ですし、
<EMPHASIS>@my2nd.org</EMPHASIS> のようにドメインごとでも大丈夫です。
この属性は複数存在できますが、格納する値はそれぞれひとつずつでなければなりません。
これらの ID それぞれに対して、メールが <EMPHASIS>mailacceptinggeneralid</EMPHASIS> に送られます。
<!-- For は because とか since のように理由を述べているの
かもしれないと思うけど、つながりが理解できないので未訳 -->
<!-- id's, で切れるように読めました -->
</PARA>

<!--
<PARA>Here you'll put what you used to put at the left side in the <FILENAME
MOREINFO="NONE">virtusers</FILENAME> file.</PARA></LISTITEM></VARLISTENTRY>
-->
<PARA>ここには、今まで <FILENAME MOREINFO="NONE">virtusers</FILENAME>
ファイルの左側にあったデータを入れることになるわけです。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>mailacceptinggeneralid</TERM>
<LISTITEM><PARA>Defines a virtual user. This is in fact the link
between the <FILENAME MOREINFO="NONE">virtusers</FILENAME> and <FILENAME
MOREINFO="NONE">aliases</FILENAME> file. In each entry, one attribute of
this type must be present, but no more than one may be present, and the
attribute may contain only one value. This can either be a local username,
or a virtual user. In the second case, a maildrop attribute must be present,
in the first case, it does not.</PARA>
-->
<VARLISTENTRY><TERM>mailacceptinggeneralid</TERM>
<LISTITEM><PARA>仮想ユーザを定義します。実は、これが
<FILENAME MOREINFO="NONE">virtusers</FILENAME> ファイルと
<FILENAME MOREINFO="NONE">aliases</FILENAME> ファイルとの繋ぎ目です。
この属性が各エントリにひとつずつ存在していなくてはなりませんが、
それより多くてもいけません。しかも値をひとつしか入れられません。
値にはローカルユーザ名か仮想ユーザを入れることができます。
後者の場合は maildrop 属性が存在しなくてはなりません。
前者には必要ありません。
</PARA>

<!--
<PARA>Here you'll put what you used to put in the <FILENAME
MOREINFO="NONE">virtusers</FILENAME> file, and at the left
side in the <FILENAME MOREINFO="NONE">aliases</FILENAME>
file.</PARA></LISTITEM></VARLISTENTRY>
-->
<PARA>ここには、これまで <FILENAME MOREINFO="NONE">virtusers</FILENAME>
ファイルにあった情報と <FILENAME MOREINFO="NONE">aliases</FILENAME>
ファイルの左側にあった情報を入れることになるわけです。
</PARA></LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>maildrop</TERM>
<LISTITEM><PARA>Defines the addresses and/or users that mail received for
should be delivered to. Only one attribute of this type may be present,
but it may contain a comma-separated list of addresses and/or users. If the
value of <EMPHASIS>mailacceptinggeneralid</EMPHASIS> is a virtual user,
this attribute must be present. If the value is a real user, this entry
may be omitted.</PARA>
-->
<VARLISTENTRY><TERM>maildrop</TERM>
<LISTITEM><PARA>受信したメールの配信先となるアドレスやユーザを定義します。
<!-- 構文は不明だけど「受信メールを配信すべきアドレス」でよいはず -->
この属性はひとつしか存在できませんが、コンマ区切りのリストを入れられます。
<EMPHASIS>mailacceptinggeneralid</EMPHASIS> の値が仮想ユーザなら、
この属性は必須です。実在するユーザなら省略できます。
</PARA>

<!--
<PARA>Here you'll put what you used to put at the right
side in the <FILENAME MOREINFO="NONE">aliases</FILENAME>
file.</PARA></LISTITEM></VARLISTENTRY>
-->
<PARA>つまり、ここには <FILENAME MOREINFO="NONE">aliases</FILENAME>
ファイルの右側の部分を入れるということです。
</PARA></LISTITEM>

</VARLISTENTRY>

</VARIABLELIST>
</PARA>

<!--
<PARA>In general, one could say that the <EMPHASIS>mailid</EMPHASIS>
and <EMPHASIS>mailacceptinggeneralid</EMPHASIS> together provide the
functionality of the <FILENAME MOREINFO="NONE">virtusers</FILENAME>
file, and <EMPHASIS>mailacceptinggeneralid</EMPHASIS> and
<EMPHASIS>maildrop</EMPHASIS> together provide the functionality of the
<FILENAME MOREINFO="NONE">aliases</FILENAME> file.</PARA></LISTITEM>
-->
<PARA>一般的に、<EMPHASIS>mailid</EMPHASIS> と
<EMPHASIS>mailacceptinggeneralid</EMPHASIS> とが一緒になって
<FILENAME MOREINFO="NONE">virtusers</FILENAME> ファイルの機能を
提供すると言えます。そして <EMPHASIS>mailacceptinggeneralid</EMPHASIS> と
<EMPHASIS>maildrop</EMPHASIS> とが <FILENAME
MOREINFO="NONE">aliases</FILENAME> ファイルの機能を提供するのです。
</PARA>

</LISTITEM>

<!--
<LISTITEM>
<PARA>One or more entries that hold the domain names which would
normally apear in the <FILENAME MOREINFO="NONE">sendmail.cw</FILENAME> and
<FILENAME MOREINFO="NONE">access</FILENAME> files. For this I have defined
an objectclass <EMPHASIS>inetmaildomain</EMPHASIS>, and three attributes,
<EMPHASIS>maildomain</EMPHASIS>, <EMPHASIS>sendmailislokalkey</EMPHASIS>
and <EMPHASIS>sendmailaccesskey</EMPHASIS>.</PARA>
-->
<LISTITEM>
<PARA>通常 <FILENAME MOREINFO="NONE">sendmail.cw</FILENAME> ファイルや
<FILENAME MOREINFO="NONE">access</FILENAME> ファイルにあるドメイン名を
保持するエントリです (複数つくれます)。このエントリのために
<EMPHASIS>inetmaildomain</EMPHASIS> という objectclass と
<EMPHASIS>maildomain</EMPHASIS>, <EMPHASIS>sendmailislokalkey</EMPHASIS>,
<EMPHASIS>sendmailaccesskey</EMPHASIS> という属性を定義しました。
</PARA>

<PARA><VARIABLELIST>

<!--
<VARLISTENTRY><TERM>inetmaildomain</TERM>
<LISTITEM><PARA>This is a classification that tells us the entry lists mail
domains which belong to our system, and either should be delivered locally,
or be relayed to another host.</PARA></LISTITEM></VARLISTENTRY>
-->
<VARLISTENTRY><TERM>inetmaildomain</TERM>
<LISTITEM><PARA>システムに属するメールドメインの一覧であり、かつ、
ローカルに配送すべきか他ホストに転送すべきかの一覧であるエントリ
を表す階級です。
 <!-- nakano
 <LISTITEM><PARA>このエントリが、
 システムに属するメールドメインのリストであることを表わす階級です。
 これらのドメインヘは、ローカルに配送するか、
 あるいは他ホストに転送すべきかのいずれかです。
 (あるいは「いずれか」がリストで示されている?)
 nakano -->
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>maildomain</TERM>
<LISTITEM><PARA>Defines the mail domain. Multiple of these attributes may
be presentin a single entry. The value should be the domain without the
"@".</PARA>
-->
<VARLISTENTRY><TERM>maildomain</TERM>
<LISTITEM><PARA>メールドメインを定義します。
ひとつのエントリに複数存在できます。
値は「@」マークなしのドメインになります。
</PARA>

<!--
<PARA>For each of the dmain entries in the
<EMPHASIS>local-host-names</EMPHASIS> file, one of these attributes should
be present.</PARA></LISTITEM></VARLISTENTRY>
-->
<PARA>この属性は、<EMPHASIS>local-host-names</EMPHASIS> ファイル内の
ドメインのエントリごとに、ひとつずつ存在しているべきです。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>sendmailislocalkey</TERM>
<LISTITEM><PARA>This defines a simple key that is used in the sendmail rules
to determine if a domain is local. It can be anything really, but is must be
the exact string you will use in your sendmail rules. For now I have used
<EMPHASIS><SGMLTAG CLASS="STARTTAG">LDAPLOCAL</SGMLTAG></EMPHASIS>. One
attribute of this type must be present, and no more than one may be present
in each entry.</PARA></LISTITEM></VARLISTENTRY>
-->
<VARLISTENTRY><TERM>sendmailislocalkey</TERM>
<LISTITEM><PARA>ドメインがローカルかどうかを見分けるために
Sendmail のルールの中で使う、シンプルな合言葉 (キー) を定義します。
Sendmail ルールの中で使う文字列と正確に一致していなくてはならない
ということを除けば、本当に何でも構いません。著者はとりあえず
<EMPHASIS><SGMLTAG CLASS="STARTTAG">LDAPLOCAL</SGMLTAG></EMPHASIS>
を使っています。必須属性で、各エントリに複数は存在できません。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>sendmailaccesskey</TERM>
<LISTITEM><PARA>This defines the key that is used in the sendmail rules
to determine what action needs t be taken for the specified domain. It
can be one of <EMPHASIS>RELAY</EMPHASIS>, <EMPHASIS>OK</EMPHASIS>,
<EMPHASIS>REJECT</EMPHASIS>, <EMPHASIS>DISCARD</EMPHASIS> or an
error indicator. (For detailed information see the <FILENAME
MOREINFO="NONE">cf/README</FILENAME> file from the sendmail
sources.)</PARA></LISTITEM></VARLISTENTRY>
-->
<VARLISTENTRY><TERM>sendmailaccesskey</TERM>
<LISTITEM><PARA>Sendmail のルールで使われるキー<!-- key-->のうち、
何を使うか定義します。このキーで、そのドメインで行うべき動作を決定します。
<EMPHASIS>RELAY</EMPHASIS>, <EMPHASIS>OK</EMPHASIS>,
<EMPHASIS>REJECT</EMPHASIS>, <EMPHASIS>DISCARD</EMPHASIS> と
エラー表示<!-- indicator -->を使えます。(詳しくは Sendmail のソース内の
<FILENAME MOREINFO="NONE">cf/README</FILENAME> ファイルを参照してください。)
</PARA></LISTITEM>
</VARLISTENTRY>

</VARIABLELIST></PARA>

<!--
<NOTE><PARA>PLease note that in this particular setup I will only be using
entire domains in the <EMPHASIS>access</EMPHASIS> file. That means that
in this case I can use the <EMPHASIS>maildomain</EMPHASIS> attribute for
both the information used in the <EMPHASIS>access</EMPHASIS> file and the
information used in the <EMPHASIS>local-host-names</EMPHASIS>. If you want
a finer control over your access list, you should define a separate entry to
hold that information, instead of using the <EMPHASIS>maildomain</EMPHASIS>
attribute.</PARA></NOTE>
-->
<NOTE><PARA>ご注意ください。
今回は特別な設定として、<EMPHASIS>access</EMPHASIS> ファイルでは
ドメインまるごとのエントリしか使わないことにしました。
これはつまり、<EMPHASIS>maildomain</EMPHASIS> 属性を
<EMPHASIS>access</EMPHASIS> ファイルの情報にも
<EMPHASIS>local-host-names</EMPHASIS> の情報にも使い回せるのは
今回のような場合だけだということです。
アクセスリストをもっと細かく制御したいならば、
一緒の <EMPHASIS>maildomain</EMPHASIS> 属性にしてしまわずに、
それぞれ別のエントリを使うべきです。
</PARA></NOTE>

</LISTITEM>
</ORDEREDLIST>
</PARA>
</SECT3>

<!--
<SECT3><TITLE>More information.</TITLE>
-->
<SECT3><TITLE>さらなる情報のために</TITLE>

<!--
<PARA>Here are a few sources of information that might be
useful:<ITEMIZEDLIST>
-->
<PARA>有用と思われる情報源をいくつか紹介します。
<ITEMIZEDLIST>

<!--
<LISTITEM><PARA>Booker Bense has written a <ULINK
URL="http://www.stanford.edu/~bbense/ldap/Inst.html">document</ULINK>
about the usage of ldap with sendmail 8.9.3. He says it's the wrong place
to start when learning about using sendmail and ldap, but it has been of
great help to me.</PARA></LISTITEM>
-->
<LISTITEM><PARA>Booker Bense が <ULINK
URL="http://www.stanford.edu/~bbense/ldap/Inst.html">こういう文書</ULINK>
を書いてくれました。Sendmail 8.9.3 での LDAP の使用法に関するものです。
Sendmail と LDAP の使い方を学習する際の出発地点には向いていない、と
本人は言っていますが、著者にとっては、たいへん助けになりました。
</PARA></LISTITEM>

<!--
<LISTITEM><PARA><ULINK URL="http://ldapman.org/articles/index.html">New
articles</ULINK> about ldap and sendmail are being published
on <ULINK URL="http://www.sendmail.net">sendmail.net</ULINK>,
written by Michael Donnelly, originating from <ULINK
URL="http:///www.ldapmap.org">ldapmap.org</ULINK>,
which has also a lot of general interesting ldap-related
information.</PARA></LISTITEM>
-->
<LISTITEM><PARA>LDAP と Sendmail に関する <ULINK
URL="http://ldapman.org/articles/index.html">新着記事</ULINK> が
<ULINK URL="http://www.sendmail.net">sendmail.net</ULINK> 上で
公開されています。作者は Michael Donnelly で、そもそも
<ULINK URL="http:///www.ldapmap.org">ldapmap.org</ULINK> という、
これまた興味深い一般的な LDAP 関連情報満載のサイトから始まりました。
</PARA></LISTITEM>

</ITEMIZEDLIST>
</PARA>
</SECT3>
</SECT2>

<!--
<SECT2><TITLE>Postfix</TITLE>
-->
<SECT2><TITLE>Postfix</TITLE>

<!--
<SECT3><TITLE>Support</TITLE>
-->
<SECT3><TITLE>サポート</TITLE>

<!--
<PARA>
Postfix has native ldap support. A lot of options in postfix can be configured
using <EMPHASIS>maps</EMPHASIS> which can be of various types. One of those
types is ldap.
For each ldap map a couple of options can be configured. (See <XREF
LINKEND="POSTCONF">.)
</PARA>
-->
<PARA>Postfix では、本体に最初から LDAP サポートが入っています。
オプションの多くを設定する <EMPHASIS>マップ</EMPHASIS> の
たくさんの種類のなかに、LDAP もあるのです。
各 LDAP マップにつき、オプションが二、三あります。
(<XREF LINKEND="POSTCONF"> を参照してください。)
</PARA>

<!--
<PARA>
The process of having postfix look up certain data in an ldap database is
pretty straightforward. The most common use (so i think) is to have postfix
look up virtual users in the ldap database. Together with the above explaind
nss_ldap feature, this allows you to have all your email users in an ldap
database. But other things can be configured too, like the domains postfix
is allowed to relay mail for, or relay mail from, or for which is should
act as a backup mail server.
</PARA>
-->
<PARA>
Postfix に LDAP データベース内のデータを検索させるための手順は、
極めてわかりやすくなっています。最も一般的な使い方 (と著者が思うもの) は、
仮想ユーザを LDAP データベースから参照<!-- look up -->させることです。
これを前述の nss_ldap とともに使えば、すべての電子メール利用者の情報を
LDAP データベースに入れておけます。しかし、設定できる項目は他にもあります。
例えば Postfix がメールを転送できるドメインや、
逆に Postfix が転送要求を受け付けるドメイン、
またバックアップサーバとして動作すべきドメインです。
</PARA>

</SECT3>

<!--
<SECT3 ID="POSTCONF"><TITLE>Configuration</TITLE>
-->
<SECT3 ID="POSTCONF"><TITLE>設定</TITLE>

<!--
<PARA>
The description of the configuration options is completely taken from
LDAP_README in the postfix docs from version 20001217.
</PARA>
-->
<PARA>設定オプションに関する説明はすべて、バージョン 20001217 における
Postfix docs の LDAP_README から引用しています。
</PARA>

<PARA><VARIABLELIST>

<!--
<VARLISTENTRY><TERM>server_host</TERM>
<LISTITEM><PARA>The name of the host running the LDAP server, e.g.</PARA>
-->
<VARLISTENTRY><TERM>server_host</TERM>
<LISTITEM><PARA>LDAP サーバを動かしているホストの名前です。設定例を挙げます。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_server_host = ldap.your.com
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_server_host = ldap.your.com
</PROGRAMLISTING></PARA>


<!--
<PARA>
        It should be possible with all the libraries mentioned above to
        specify multiple servers separated by spaces, with the libraries
        trying them in order should the first one fail. It should also
        be possible to give each server in the list a different port, by
        naming them like "ldap.your.com:1444".
</PARA></LISTITEM>
-->
<PARA> 前述した全てのライブラリで、
複数のサーバをスペースで区切って指定することもできます。
最初のものが失敗すると、ライブラリはそれらを順に試行します。
<!--should the first one fail は、if the first one should fail かと。-->
「ldap.your.com:1444」というように書いて、
各サーバにそれぞれ異なるポートを渡すこともできます。
</PARA></LISTITEM>


</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>server_port (389)</TERM>
<LISTITEM><PARA>The port the LDAP server listens on, e.g.</PARA>
-->
<VARLISTENTRY><TERM>server_port (389)</TERM>
<LISTITEM><PARA>LDAP サーバが要求を受け付けるポートです。例えばこうなります。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_server_port = 778
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_server_port = 778
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>search_base (No default; you must configure this.)</TERM>
<LISTITEM><PARA>The base at which to conduct the search, e.g.</PARA>
-->
<VARLISTENTRY><TERM>search_base (既定値なし ― 設定が必要です)</TERM>
<LISTITEM><PARA>検索する最上位ディレクトリ<!-- base -->です。例えばこうです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_search_base = dc=your, dc=com
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_search_base = dc=your, dc=com
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>timeout (10 seconds)</TERM>
<LISTITEM><PARA>The number of seconds a search can take before timing out,
e.g.</PARA>
-->
<VARLISTENTRY><TERM>timeout (10 秒)</TERM>
<LISTITEM><PARA>検索結果をあきらめるまでの秒数です。例えばこう指定します。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_timeout = 5
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_timeout = 5
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>query_filter (mailacceptinggeneralid=%s)</TERM>
<LISTITEM><PARA>The RFC2254 filter used to search the directory, where %s is a 
        substitute for the address Postfix is trying to resolve, e.g.</PARA>
-->
<VARLISTENTRY><TERM>query_filter (mailacceptinggeneralid=%s)</TERM>
<LISTITEM><PARA>ディレクトリ検索に使う、RFC2254 式フィルタです。
Postfix が解決しようとするアドレスのところに、代わりに %s を入れます。
例は次のとおり。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_query_filter = (&(mail=%s)(paid_up=true))
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_query_filter = (&amp;(mail=%s)(paid_up=true))
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>domain (No default; you must configure this.)</TERM>
<LISTITEM><PARA>This is a list of domain names, paths to files, or
dictionaries.
        If specified, only lookups ending in a domain on this list will
        be searched. This can significantly reduce the query load on the
        LDAP server.</PARA>
-->
<VARLISTENTRY><TERM>domain (既定値なし ― 設定が必要です)</TERM>
<LISTITEM><PARA>ドメイン名、ファイルへのパス、および
辞書<!-- へのパス？ -->の一覧です。
指定されていると、この中にあるドメインで名前が終わるホストしか検索しません。
<!-- only lookups ending in a domain の意味
下の例だったら *.postfix.org だけ lookup するのでしょう。-->
これによって LDAP サーバへの問い合わせ負荷を劇的に軽減できます。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_domain = postfix.org,
                hash:/etc/postfix/searchdomains
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_domain = postfix.org,
hash:/etc/postfix/searchdomains
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>result_attribute (maildrop)</TERM>
<LISTITEM><PARA>The attribute(s) Postfix will read from any directory entries
        returned by the lookup, to be resolved to an email address.</PARA>
-->
<VARLISTENTRY><TERM>result_attribute (maildrop)</TERM>
<LISTITEM><PARA>検索によって返されるディレクトリエントリから
メールアドレス解決のために読み込む属性です (複数も可)。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_result_attribute = mailbox,maildrop
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_result_attribute = mailbox,maildrop
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>special_result_attribute (No default)</TERM>
<LISTITEM><PARA>The attribute(s) of directory entries that can contain DNs
or URLs.
        If found, a recursive subsequent search is done using their
        values.</PARA>
-->
<VARLISTENTRY><TERM>special_result_attribute (既定値なし)</TERM>
<LISTITEM><PARA>エントリのうち、DN や URL を含んでいる属性です (複数も可)。
指定されていると、その値を使って再帰的に順次検索していきます。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_special_result_attribute = member
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_special_result_attribute = member
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>scope (sub)</TERM>
<LISTITEM><PARA>The LDAP search scope: sub, base, or one. These translate into
        LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE, and
        LDAP_SCOPE_ONELEVEL.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>scope (sub)</TERM>
<LISTITEM><PARA>LDAP 検索スコープ ― sub, base, one のいずれか ― です。
それぞれ LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE, LDAP_SCOPE_ONELEVEL に
変換されます。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>bind (yes)</TERM>
<LISTITEM><PARA>Whether or not to bind to the LDAP server. Newer LDAP
        implementations don't require clients to bind, which saves
        time. Example:</PARA>
-->
<VARLISTENTRY><TERM>bind (yes)</TERM>
<LISTITEM><PARA>LDAP サーバにバインドするかどうかの指定です。
LDAP の最近の実装ではバインドを必要とせず、時間を節約できます。
設定例は次のとおり。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_bind = no
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_bind = no
</PROGRAMLISTING></PARA>

<!--
<PARA>
        If you do need to bind, you might consider configuring Postfix
        to connect to the local machine on a port that's an SSL tunnel
        to your LDAP server. If your LDAP server doesn't natively
        support SSL, put a tunnel (wrapper, proxy, whatever you want to
        call it) on that system too. This should prevent the password
        from traversing the network in the clear.</PARA></LISTITEM>
-->
<PARA>バインドする必要があるなら、ローカルマシンのポートを LDAP サーバへの
SSL トンネルにして、そこに接続させた方がよいかもしれません。
LDAP サーバが SSL をサポートしていなければ、サーバ側のシステムにも
トンネルを設置します (ラッパでもプロクシでも、呼び方はお好みで)。
これで、パスワードがネットワークを丸見えのまま通過しなくなります。
</PARA></LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>bind_dn ("")</TERM>
<LISTITEM><PARA>If you do have to bind, do it with this distinguished name.
        Example:
</PARA>
-->
<VARLISTENTRY><TERM>bind_dn ("")</TERM>
<LISTITEM><PARA>バインドする必要があるとき、この識別名でバインドします。
例えばこうです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_bind_dn = uid=postfix, dc=your, dc=com
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_bind_dn = uid=postfix, dc=your, dc=com
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>bind_pw ("")</TERM>
<LISTITEM><PARA>The password for the distinguished name above. If you have to
        use this, you probably want to make main.cf readable only by
        the Postfix user. Example:</PARA>
-->
<VARLISTENTRY><TERM>bind_pw ("")</TERM>
<LISTITEM><PARA>上の識別名のパスワードです。これを使う必要のあるときは
きっと、main.cf を Postfix <!--の?-->ユーザからしか見えないように
したいと思うはずです。設定例はこうなります。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
                ldapsource_bind_pw = postfixpw
</PROGRAMLISTING></PARA>
</LISTITEM>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
ldapsource_bind_pw = postfixpw
</PROGRAMLISTING></PARA>
</LISTITEM>

</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>cache (no)</TERM>
<LISTITEM><PARA>Whether to use a client-side cache for the LDAP
connection. See
        ldap_enable_cache(3). It's off by default.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>cache (no)</TERM>
<LISTITEM><PARA>LDAP 接続にクライアントサイドキャッシュを使うかどうかです。
ldap_enable_cache(3) を参照してください。
これはデフォルトではオフになっています。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>cache_expiry (30 seconds)</TERM>
<LISTITEM><PARA>If the client-side cache is enabled, cached results will
expire
        after this many seconds.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>cache_expiry (30 秒)</TERM>
<LISTITEM><PARA>クライアントサイドキャッシュが有効なとき、
ここで指定した秒数の後で、結果のキャッシュを破棄します。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>cache_size (32768 bytes)</TERM>
<LISTITEM><PARA>If the client-side cache is enabled, this is its size in
bytes.</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>cache_size (32768 バイト)</TERM>
<LISTITEM><PARA>クライアント側のキャッシュが有効なら、そのバイト数です。
</PARA></LISTITEM>
</VARLISTENTRY>

<!--
<VARLISTENTRY><TERM>dereference (0)</TERM>
<LISTITEM><PARA>When to dereference LDAP aliases. (Note that this has nothing
        do with Postfix aliases.) The permitted values are those
        legal for the OpenLDAP/UM LDAP implementations:
<SIMPLELIST TYPE="horiz" COLUMNS="2">
<MEMBER>0</MEMBER><MEMBER>never</MEMBER>
<MEMBER>1</MEMBER><MEMBER>when searching</MEMBER>
<MEMBER>2</MEMBER><MEMBER>when locating the base object for the search</MEMBER>
<MEMBER>3</MEMBER><MEMBER>always</MEMBER>
</SIMPLELIST>
</PARA></LISTITEM>
</VARLISTENTRY>
-->
<VARLISTENTRY><TERM>dereference (0)</TERM>
<LISTITEM><PARA>どういうときに LDAP エイリアスを
辿るか<!-- 参照を逆に辿ることを dereference といいます。-->の指定です。
(Postfix のエイリアスとは関係ありませんので注意してください。)
OpenLDAP と UM LDAP の実装で有効な値は以下の通りです。
<SIMPLELIST TYPE="horiz" COLUMNS="2">
<MEMBER>0</MEMBER><MEMBER>一切しない</MEMBER>
<MEMBER>1</MEMBER><MEMBER>検索時</MEMBER>
<MEMBER>2</MEMBER><MEMBER>検索のためにベースオブジェクトの位置を探すとき</MEMBER>
<MEMBER>3</MEMBER><MEMBER>常にする</MEMBER>
</SIMPLELIST>
</PARA></LISTITEM>
</VARLISTENTRY>


</VARIABLELIST></PARA>

</SECT3>

<!--
<SECT3><TITLE>Example setup</TITLE>
-->
<SECT3><TITLE>設定例</TITLE>

<!--
<PARA>
If you want a virtual domain (say foo.virtualdomain.com) and you want to
store email addresses in Ldap for this domain, youwould need the following
piece in your <FILENAME>main.cf</FILENAME>.
</PARA>
-->
<PARA>バーチャルドメイン (foo.virtualdomain.com とします) を使いたいとき、
そしてそのドメインのメールアドレスを LDAP に格納したいときには、
<FILENAME>main.cf</FILENAME> に以下のように書く必要があります。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
virtual_maps = ldap:ldapvirtual
ldapvirtual_search_base = ou=mail,o=YourOrg,c=nl
ldapvirtual_query_filter = (mailacceptinggeneralid=%s)
ldapvirtual_domain = foo.virtualdomain.com
ldapvirtual_result_attribute = maildrop
ldapvirtual_bind = no
ldapvirtual_scope = one
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
virtual_maps = ldap:ldapvirtual
ldapvirtual_search_base = ou=mail,o=YourOrg,c=nl
ldapvirtual_query_filter = (mailacceptinggeneralid=%s)
ldapvirtual_domain = foo.virtualdomain.com
ldapvirtual_result_attribute = maildrop
ldapvirtual_bind = no
ldapvirtual_scope = one
</PROGRAMLISTING></PARA>

<!--
<PARA>
With this setting, if postfix receives mail for a user with a domain part
"foo.virtualdomain.com", to do a search in the database for entries that
have an attribute <EMPHASIS>mailacceptinggeneralid</EMPHASIS> that matches
"user@foo.virtualdomain.com". If such an entry is found, the values of all
available <EMPHASIS>maildrop</EMPHASIS> attributes are returned, and to
these values the mail is delivered. If "user@foo.virtualdomain.com" is not
found, another query is performed, that tries to match the catchall user,
"@foo.virtualdomain.com". If this is again not found, the message will
be bounced.
</PARA>
-->
<PARA>この設定では、Postfix が「foo.virtualdomain.com」ドメインの
ユーザへのメールを受信すると、
<EMPHASIS>mailacceptinggeneralid</EMPHASIS> という属性が
「user@foo.virtualdomain.com」に合致するエントリを探します。
そのようなエントリがあれば、<EMPHASIS>maildrop</EMPHASIS>
属性の値がすべて返ってきます。そこにメールが配送されるのです。
もし「user@foo.virtualdomain.com」がなければ、
ドメイン全体をひっくるめたユーザに合致するように、「@foo.virtualdomain.com」
という別の問い合わせをします。これもないときは、メッセージが回送 (バウンス)
されます。
</PARA>

</SECT3>

</SECT2>

<!--
<SECT2><TITLE>Qmail</TITLE>
-->
<SECT2><TITLE>qmail</TITLE>

<!--
<PARA>
Qmail itself does not have any ldap support. However, there is a patch by
Andre Oppermann that provides ldap support.
This package, including the documentation for it, can be found at <ULINK
URL="http://www.nrg4u.com">his site</ULINK>.
</PARA>
-->
<PARA>qmail 自体にはまったく LDAP サポートがありません。
しかしながら Andre Oppermann の LDAP サポートのパッチがあります。
これのパッケージは、文書も含めて <ULINK
URL="http://www.nrg4u.com">彼のサイト</ULINK> にあります。
</PARA>

</SECT2>

</SECT1>
