diff options
-rw-r--r-- | ja_JP.eucJP/books/handbook/mail/chapter.sgml | 1195 |
1 files changed, 1088 insertions, 107 deletions
diff --git a/ja_JP.eucJP/books/handbook/mail/chapter.sgml b/ja_JP.eucJP/books/handbook/mail/chapter.sgml index 92fbc28ed4..1527da2dca 100644 --- a/ja_JP.eucJP/books/handbook/mail/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/mail/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: 1.28 + Original revision: 1.88 $FreeBSD$ --> @@ -29,32 +29,81 @@ <para><emphasis>訳: &a.jp.mihoko;. 14 January 1997.</emphasis></para> - <sect1> + <sect1 id="mail-synopsis"> <title>この章では</title> <indexterm><primary>email</primary></indexterm> <indexterm><primary>電子メール</primary></indexterm> - <para>電子メール、email としてのほうが知られているでしょう、 + <para><quote>電子メール</quote>、email としてのほうが知られているでしょう、 は現代で最も広く利用されているコミュニケーション手段の一つです。 - 何百万人という人が毎日 email を使っており、 - この文章を偶然にもオンラインで読んでいるという人はこのカテゴリーに入るでしょうし、 - 複数の email アドレスを持っていたりもするかもしれません。</para> - - <para>電子メールの設定は多くの<link linkend="bibliography">システム管理</link>書籍のテーマになっています。 - もし自分のネットワーク用に一つメールホストを設定することよりもさらに高度なことをしようとするなら、 - しっかりとしたヘルプが必要でしょう。</para> - <indexterm><primary>DNS</primary></indexterm> - - <para>email の設定におけるいくつかの部分は Domain Name System (DNS) - の管理下にあります。自分の DNS サーバーを立ち上げようと思っているなら、 - 必ず <filename>/etc/namedb</filename> と - <command>man -k named</command> を一通り読むようにしてください。</para> + この章では FreeBSD 上でメールサーバを実行するための基本的な導入を説明します。 + しかし、この文書は完璧な参考文献ではなく、 + 実際のところ考慮すべき重要な点の多くが省略されています。 + この件について、より網羅したものについては <xref linkend="bibliography"> + に掲載されている多くの優れた書籍を参照してください。</para> + + <para>この章では、以下の分野について説明します。</para> + + <itemizedlist> + <listitem> + <para>電子メールの送受信に関係しているソフトウェアの構成要素</para> + </listitem> + + <listitem> + <para>FreeBSD における <application>sendmail</application> + の基本的な設定ファイルのある場所</para> + </listitem> + + <listitem> + <para>スパマーがあなたのメールサーバを踏台として不正に使用することを防ぐ方法</para> + </listitem> + + <listitem> + <para>あなたのシステムに <application>sendmail</application> + の置き換えとなる代替の MTA をインストールして設定する方法</para> + </listitem> + + <listitem> + <para>メールサーバにまつわる共通の問題の解決法</para> + </listitem> + + <listitem> + <para>UUCP とともに SMTP を使う方法</para> + </listitem> + + <listitem> + <para>ダイアルアップ接続でメールを使う方法</para> + </listitem> + + <listitem> + <para>セキュリティを向上するために SMTP 認証を設定する方法</para> + </listitem> + </itemizedlist> + + <para>この章を読む前に、以下のことを理解しておく必要があります。</para> + + <itemizedlist> + <listitem> + <para>ネットワーク接続の適切な設定方法 + (<xref linkend="advanced-networking">)</para> + </listitem> + + <listitem> + <para>あなたのメールホストに対する DNS 情報の適切な設定方法 + (<xref linkend="advanced-networking">)</para> + </listitem> + + <listitem> + <para>サードパーティ製ソフトウェアのインストール方法 + (<xref linkend="ports">)</para></listitem> + </itemizedlist> </sect1> <sect1 id="mail-using"> <title>電子メールを使う</title> <indexterm><primary>POP</primary></indexterm> <indexterm><primary>IMAP</primary></indexterm> + <indexterm><primary>DNS</primary></indexterm> <para>email の交換には 5 つの主要な部分があります。 それらは <link linkend="mail-mua">ユーザープログラム</link>、 @@ -73,11 +122,11 @@ といったコマンドラインプログラムや <application>balsa</application>, <application>xfmail</application> のような - GUI プログラム、WWW ブラウザーのようにさらに<quote>洗練された</quote>ものまであります。 + GUI プログラム、WWW ブラウザーのようにさらに <quote>洗練された</quote> ものまであります。 これらのプログラムは、email の処理を <link linkend="mail-mta">server daemons</link> を呼び出したり TCP 経由で渡したり、といった手段でローカルの - <link linkend="mail-host"><quote>メールホスト</quote></link>に任せるだけです。</para> + <link linkend="mail-host"><quote>メールホスト</quote></link> に任せるだけです。</para> </sect2> <sect2 id="mail-mta"> @@ -156,9 +205,7 @@ <procedure> <step> - <!-- XXX: kuriyama: English version points as /ports/mail.html. --> - <!-- XXX: kuriyama: This should be related path. --> - <para>POP や IMAP のデーモンを<ulink url="../ports/mail.html">ports コレクション</ulink>からインストールします。</para> + <para>POP や IMAP のデーモンを <ulink url="../../../../ports/mail.html">ports コレクション</ulink> からインストールします。</para> </step> <step> @@ -176,6 +223,506 @@ </sect2> </sect1> + <sect1 id="sendmail"> + <sect1info> + <authorgroup> + <author> + <firstname>Christopher</firstname> + <surname>Shumway</surname> + <contrib>寄稿: </contrib> + </author> + </authorgroup> + </sect1info> + <title><application>sendmail</application> の設定</title> + + <indexterm> + <primary><application>sendmail</application></primary> + </indexterm> + + <para>&man.sendmail.8; は FreeBSD のデフォルトの + メールトランスファエージェント (MTA) です。 + <application>sendmail</application> + の仕事はメールユーザエージェント (MUA) からのメールを受け取り、 + それを設定ファイルで定義された適当なメーラに届けることです。 + <application>sendmail</application> はネットワーク接続を受け入れて、 + ローカルのメールボックスにメールを届けたり + 別のプログラムにメールを渡したりもできます。</para> + + <para><application>sendmail</application> は次の設定ファイルを使用します。</para> + + <indexterm> + <primary><filename>/etc/mail/access</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/aliases</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/local-host-names</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/mailer.conf</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/mailertable</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/sendmail.cf</filename></primary> + </indexterm> + <indexterm> + <primary><filename>/etc/mail/virtusertable</filename></primary> + </indexterm> + + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>ファイル名</entry> + <entry>機能</entry> + </row> + </thead> + <tbody> + <row> + <entry> + <filename>/etc/mail/access</filename> + </entry> + <entry><application>sendmail</application> アクセスデータベースファイル</entry> + </row> + <row> + <entry> + <filename>/etc/mail/aliases</filename> + </entry> + <entry>メールボックスエイリアス</entry> + </row> + <row> + <entry> + <filename>/etc/mail/local-host-names</filename> + </entry> + <entry><application>sendmail</application> が受け付ける配送先ホストのリスト</entry> + </row> + <row> + <entry> + <filename>/etc/mail/mailer.conf</filename> + </entry> + <entry>メーラプログラムの設定</entry> + </row> + <row> + <entry> + <filename>/etc/mail/mailertable</filename> + </entry> + <entry>メーラ配送表</entry> + </row> + <row> + <entry> + <filename>/etc/mail/sendmail.cf</filename> + </entry> + <entry><application>sendmail</application> の主設定ファイル</entry> + </row> + <row> + <entry> + <filename>/etc/mail/virtusertable</filename> + </entry> + <entry>仮想ユーザおよび仮想ドメイン表</entry> + </row> + </tbody> + </tgroup> + </informaltable> + + <sect2> + <title><filename>/etc/mail/access</filename></title> + + <para>アクセスデータベースは、 + どのホストまたは IP アドレスがローカルメールサーバに接続できるか、 + そして接続の種類は何か、ということを定義します。 + ホストは <option>OK</option>, <option>REJECT</option>, + <option>RELAY</option> として指定できます。 + または、メーラエラーを指定することで、 + 単に <application>sendmail</application> の + エラー処理ルーチンに渡されます。 + <option>OK</option> として指定されたホスト (これはデフォルトです) は、 + メールの最終宛先がローカルマシンである限り、 + このホストへメールを送ることを認められます。 + <option>REJECT</option> として指定されたホストは、 + すべてのメール接続を拒絶されます。 + ホスト名に対して <option>RELAY</option> + オプションを指定されたホストは、 + このメールサーバを通過して任意の宛先へメールを送ることを認められます。</para> + + <example> + <title><application>sendmail</application> + アクセスデータベースの設定</title> + + <programlisting>cyberspammer.com 550 We don't accept mail from spammers +FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers +another.source.of.spam REJECT +okay.cyberspammer.com OK +128.32 RELAY</programlisting> + </example> + + <para>この例では五つのエントリがあります。 + 表の左側に当てはまるメール送信者は、表の右側の動作に支配されます。 + はじめの二つの例は、エラーコードを <application>sendmail</application> + のエラー処理ルーチンに渡します。 + メールが表の左側に当てはまると、リモートホストにそのメッセージが表示されます。 + 次のエントリは <hostid>another.source.of.spam</hostid> + というインターネット上の特定のホストからのメールを拒絶します。 + 次のエントリは <hostid role="fqdn">okay.cyberspammer.com</hostid> + からのメール接続を受け入れます。 + このエントリは上にある <hostid role="domainname">cyberspammer.com</hostid> という行よりもさらに厳密です + (厳密に一致すればするほど、そうでないものより優先されます)。 + 最後のエントリは <hostid>128.32</hostid> から始まる + IP アドレスのホストからの電子メールのリレーを認めます。 + これらのホストは他のメールサーバに到達できるこのメールサーバを使ってメールを送ることができるでしょう。</para> + + <para>このファイルを変更したら、 + データベースを更新するために <filename>/etc/mail/</filename> ディレクトリで + <command>make</command> コマンドを実行する必要があります。</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/aliases</filename></title> + + <para>エイリアスデータベースには、 + 他のユーザ、ファイル、プログラムまたは他のエイリアスに展開される + 仮想的なメールボックスの一覧が記載されています。 + <filename>/etc/mail/aliases</filename> において使用できる例をいくつかあげます。</para> + + <example> + <title>メールエイリアス</title> + <programlisting>root: localuser +ftp-bugs: joe,eric,paul +bit.bucket: /dev/null +procmail: "|/usr/local/bin/procmail"</programlisting> + </example> + + <para>ファイル形式はシンプルです。 + コロンの左側にあるメールボックス名は、右側のターゲットに展開されます。 + はじめの例は単純に <username>root</username> のメールボックスを + <username>localuser</username> のメールボックスに展開し、 + それからエイリアスデータベースをもう一度調べます。 + 一致するエントリがなければメッセージはローカルユーザである + <username>localuser</username> に配送されます。 + 次の例はメールリストです。 + <username>ftp-bugs</username> のメールボックスへのメールは + <username>joe</username>, <username>eric</username> + および <username>paul</username> の三つのローカルメールボックスに展開されます。 + リモートメールボックスは <literal>user@example.com</literal> + のように指定できることに注意してください。 + 次の例はメールをファイル、この場合 <filename>/dev/null</filename> + に書き込みます。 + 最後の例はメールをプログラムに送ります。 + この場合メールのメッセージは &unix; パイプを通じて + <filename>/usr/local/bin/procmail</filename> の標準入力に書き込まれます。</para> + + <para>このファイルを変更したら、 + データベースを更新するために<filename>/etc/mail/</filename> ディレクトリで + <command>make</command> コマンドを実行する必要があります。</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/local-host-names</filename></title> + + <para>これは &man.sendmail.8; + がローカルホスト名として認めるホスト名のリストです。 + <application>sendmail</application> + がメールを受け取るすべてのドメインやホストにこのファイルを置いてください。 + たとえば、このメールサーバは + <hostid role="domainname">example.com</hostid> というドメインおよび + <hostid role="fqdn">mail.example.com</hostid> + というホストへのメールを受け取るとすると、 + <filename>local-host-names</filename> ファイルの内容は次のようになるでしょう。</para> + + <programlisting>example.com +mail.example.com</programlisting> + + <para>このファイルを更新したら、変更を読み込むために + &man.sendmail.8; を再起動する必要があります。</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/sendmail.cf</filename></title> + + <para><application>sendmail</application> の主設定ファイルである + <filename>sendmail.cf</filename> は、電子メールアドレスの書き換えから、 + リモートメールサーバへ拒絶メッセージを送ることまで + <application>sendmail</application> の全般的な動作をすべて制御します。 + 当然、そのようなさまざまな役割によりこの設定ファイルは大変複雑で、 + その詳細についてはこの節の少し範囲外です。好運なことに、 + 標準的な構成のメールサーバではこのファイルをめったに変更する必要はありません。</para> + + <para><application>sendmail</application> の主設定ファイルは + <application>sendmail</application> の機能と動作を決定する + &man.m4.1 マクロから構築できます。 + 詳細については + <filename>/usr/src/contrib/sendmail/cf/README</filename> + を参照してください。</para> + + <para>このファイルを更新したら、その変更を反映するために + <application>sendmail</application> を再起動する必要があります。</para> + </sect2> + + <sect2> + <title><filename>/etc/mail/virtusertable</filename></title> + + <para><filename>virtusertable</filename> は仮想ドメインおよび仮想メールボックスに対するアドレスを実際のメールボックスと対応づけます。 + これらのメールボックスにはローカル、リモート、 + <filename>/etc/mail/aliases</filename> に定義されたエイリアス、 + またはファイルを使用できます。</para> + + <example> + <title>仮想ドメインメール対応表の例</title> + + <programlisting>root@example.com root +postmaster@example.com postmaster@noc.example.net +@example.com joe</programlisting> + </example> + + <para>上の例では <hostid role="domainname">example.com</hostid> + ドメインへの対応づけをしています。 + このファイルはファイルの下までファーストマッチ + (訳注: 一致するルールが複数ある場合、 + 一番最初に一致したルールが適用されること) で処理されます。 + はじめの行では <literal>root@example.com</literal> を + ローカルの <username>root</username> メールボックスに対応づけています。 + 次のエントリでは <literal>postmaster@example.com</literal> を + <hostid role="fqdn">noc.example.net</hostid> ホスト上の + <username>postmaster</username> メールボックスに対応づけています。 + 最後に、今までのところでは + <hostid role="domainname">example.com</hostid> + に関して何も一致しない場合、最後のエントリと一致するでしょう。 + これは <hostid role="domainname">example.com</hostid> + の誰かに送ったすべてのメールが一致します。これは + <username>joe</username> のローカルメールボックスに対応づけられています。</para> + </sect2> + </sect1> + + <sect1 id="mail-changingmta"> + <sect1info> + <authorgroup> + <author> + <firstname>Andrew</firstname> + <surname>Boothman</surname> + <contrib>原作: </contrib> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Gregory</firstname> + <surname>Neil Shapiro</surname> + <contrib>Information taken from e-mails written by </contrib> + </author> + </authorgroup> + </sect1info> + + <title>MTA の変更</title> + <indexterm> + <primary>email</primary> + <secondary>MTA の変更</secondary> + </indexterm> + + <para>すでに述べたように、FreeBSD には MTA (Mail Transfer Agent) として、 + <application>sendmail</application> がすでにインストールされています。 + したがって、デフォルトではこれがメールの送受信を担当しています。</para> + + <para>しかしながら、さまざまな理由によって、 + システムの MTA を変更しようと考えるシステム管理者もいるかもしれません。 + その理由は、単に他の MTA を試してみたいというものから + 他のメーラに依存する特定の機能やパッケージが必要だといったものまで、 + 多岐にわたることでしょう。 + 幸い、理由がどんなものであれ、FreeBSD では簡単に変更できます。</para> + + <sect2> + <title>新しい MTA のインストール</title> + + <para>さまざまな MTA が利用できます。 + <link linkend="ports">FreeBSD Ports Collection</link> + から探しはじめるのがよいでしょう。 + もちろん、どんな場所からでも、あなたが利用したい MTA が + FreeBSD で動作する限りすべて自由に使えます。</para> + + <para>新しい MTA をインストールすることからはじめましょう。 + 新しい MTA をインストールすると、 + あなたの要求が実際に実現したかどうか決める機会が与えられます。さらに、 + サービスを <application>sendmail</application> から引き継ぐ前に + 新しいソフトウェアを設定する機会が与えられます。これを行う場合、 + 新しいソフトウェアが <filename>/usr/bin/sendmail</filename> + のようなシステムバイナリを上書きしようとしないことを確認してください。 + そうしないとあなたが設定する前に新しいメールソフトウェアが本格的に動作しはじめてしまいます。</para> + + <para>あなたが選択したソフトウェアを設定する方法についての情報は、 + その MTA の文書を参照してください。</para> + </sect2> + + <sect2> + <title><application>sendmail</application> を無効にする</title> + + <para><application>sendmail</application> + を起動するために使用されていた手続きは、 + 4.5-RELEASE と 4.6-RELEASE の間で著しく変更されました。 + したがって、それを無効にするための手続きは微妙に違います。</para> + + <sect3> + <title>2002 年 4 月 4 日より前の FreeBSD 4.5-STABLE + (4.5-RELEASE とそれ以前のバージョンが該当)</title> + + <para><filename>/etc/rc.conf</filename> に次の行を加えてください。</para> + + <programlisting>sendmail_enable="NO"</programlisting> + + <para>これは <application>sendmail</application> + のメール受信機能を無効にします。 + しかし <filename>/etc/mail/mailer.conf</filename> (下記参照) + が変更されていなければ、<application>sendmail</application> + はメールの送信にまだ使われるでしょう。</para> + </sect3> + + <sect3> + <title>2002 年 4 月 4 日以降の FreeBSD 4.5-STABLE + (4.6-RELEASE とそれ以降のバージョンが該当)</title> + + <para><application>sendmail</application> を完全に無効にするためには + <filename>/etc/rc.conf</filename> に次の行を加えなくてはいけません。</para> + + <programlisting>sendmail_enable="NONE"</programlisting> + + <warning> + <para>もしこの方法で <application>sendmail</application> + のメール送信機能を無効にしたのなら、 + 完全に動作する代替メール配送システムと置き換えることが重要です。 + さもなければ、&man.periodic.8; などのシステム機能は、 + それらの結果を通常想定しているようにメールで配送することができなくなるでしょう。 + システムの多くの部分が <application>sendmail</application> + 互換のシステムがあることを想定しているかもしれません。 + もしそれらを無効にした後に、 + アプリケーションがメールを送ろうとするために + <application>sendmail</application> のバイナリを使用し続ければ、 + メールは使われていない <application>sendmail</application> + のキューに入り、そして決して配送されないでしょう。</para> + </warning> + + <para>もし <application>sendmail</application> + のメール受信機能だけを無効にしたいのなら + <filename>/etc/rc.conf</filename> に以下の行を追加してください。</para> + + <programlisting>sendmail_enable="NO"</programlisting> + + <para><application>sendmail</application>の起動オプションに関する詳細は + &man.rc.sendmail.8; マニュアルをご覧ください。</para> + </sect3> + </sect2> + + <sect2> + <title>起動時に新しい MTA を起動する</title> + + <para>起動時に新しい MTA を起動するには二つの選択肢があります。 + ここでも、あなたが稼働させている FreeBSD のバージョンに依存します</para> + + <sect3> + <title>2002 年 4 月 11 日より前の FreeBSD 4.5-STABLE + (4.5-RELEASE とそれ以前のバージョンが該当)</title> + + <para><filename>/usr/local/etc/rc.d/</filename> ディレクトリに、 + ファイル名が <filename>.sh</filename> でおわり、 + <username>root</username> によって実行可能なスクリプトを追加します。 + このスクリプトは <literal>start</literal> および + <literal>stop</literal> パラメータを引数として受け付けるようにします。 + 起動時にシステムスクリプトは次のコマンドを実行するでしょう。</para> + + <programlisting>/usr/local/etc/rc.d/supermailer.sh start</programlisting> + + <para>これは手動でサーバを起動するためにも使用できます。 + システム終了時にはシステムスクリプトは <literal>stop</literal> + オプションを使用して、次のコマンドを実行するでしょう。</para> + + <programlisting>/usr/local/etc/rc.d/supermailer.sh stop</programlisting> + + <para>これはシステムが稼働している間に手動でサーバを停止するためにも使えます。</para> +</sect3> + + <sect3> + <title>2002 年 4 月 11 日以降の FreeBSD 4.5-STABLE + (4.6-RELEASE とそれ以降のバージョンが該当)</title> + + <para>より新しいバージョンの FreeBSD では、 + 上記の方法または次の行を <filename>/etc/rc.conf</filename> + に設定できます。</para> + + <programlisting>mta_start_script="filename"</programlisting> + + <para><replaceable>filename</replaceable> は、あなたが + MTA を立ち上げるために起動時に実行するスクリプト名です。</para> + </sect3> + </sect2> + + <sect2> + <title>システムのデフォルトメーラとして <application>sendmail</application> を置き換える</title> + + <para><application>sendmail</application> プログラムは &unix; + システム上の標準ソフトウェアとして本当にどこでも利用できるので、 + これがすでにインストールおよび設定されているとみなしている + ソフトウェアもあるかもしれません。 + この理由により、代替となる MTA の多くは + <application>sendmail</application> コマンドラインインタフェースと + 互換性のある実装を提供しています。 + これを <quote>差し込む</quote> ことによって、 + <application>sendmail</application> の置き換えとして代替 MTA + を使用することが容易になります。</para> + + <para>したがって、あなたが互換メーラを使用しているときには、 + <filename>/usr/bin/sendmail</filename> のような標準 + <application>sendmail</application> + バイナリを実行しようとするソフトウェアが、 + 実際にはその代わりにあなたの選択したメーラを実行しているということを + 確かめる必要があるでしょう。 + 好運なことに、FreeBSD はこの仕事をする + &man.mailwrapper.8; と呼ばれるシステムを提供しています。</para> + + <para>インストールされたまま + <application>sendmail</application> が稼働しているときには + <filename>/etc/mail/mailer.conf</filename> + には以下のような記述があるでしょう。</para> + + <programlisting>sendmail /usr/libexec/sendmail/sendmail +send-mail /usr/libexec/sendmail/sendmail +mailq /usr/libexec/sendmail/sendmail +newaliases /usr/libexec/sendmail/sendmail +hoststat /usr/libexec/sendmail/sendmail +purgestat /usr/libexec/sendmail/sendmail</programlisting> + + <para>このことは、これらのうちどの共通コマンド + (<filename>sendmail</filename> 自身のような) が実行されても、 + システムは <filename>mailer.conf</filename> を確認して、 + 代わりに <filename>/usr/libexec/sendmail/sendmail</filename> を実行する + <filename>sendmail</filename> という名前の mailwapper + のコピーを呼び出すことを意味します。 + このようなシステムでは、デフォルトの + <filename>sendmail</filename> が呼び出されたときに、 + どのバイナリが実際に実行されるかを変更するのが簡単になります。</para> + + <para>したがって、<application>sendmail</application> の代わりに + <filename>/usr/local/supermailer/bin/sendmail-compat</filename> + を実行させたいのなら、次のように + <filename>/etc/mail/mailer.conf</filename> を変更してください。</para> + + <programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat +send-mail /usr/local/supermailer/bin/sendmail-compat +mailq /usr/local/supermailer/bin/mailq-compat +newaliases /usr/local/supermailer/bin/newaliases-compat +hoststat /usr/local/supermailer/bin/hoststat-compat +purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting> + </sect2> + + <sect2> + <title>完了</title> + + <para>あなたのやりたいようにすべてを設定しおえたら、 + もはや必要のない <application>sendmail</application> + のプロセスを終了して新しいソフトウェアに関するプロセスを起動するか、 + 単に再起動してください。 + 再起動することによって、新しい MTA が起動時に正しく立ち上がるように + システムが設定されているかどうか確認することもできるでしょう。</para> + </sect2> + </sect1> + <sect1 id="mail-trouble"> <title>トラブルシュート</title> <indexterm> @@ -183,9 +730,6 @@ <secondary>トラブルシューティング</secondary> </indexterm> - <para>ここには、いくつかのよく聞かれる質問とその答があります。 - それらは <ulink url="../FAQ/">FAQ</ulink> からこちらに移りました。</para> - <qandaset> <qandaentry> <question> @@ -232,14 +776,15 @@ <qandaentry> <question> - <para>sendmail が <errorname>mail loops back to + <para><application>sendmail</application> が <errorname>mail loops back to myself</errorname> というメッセージを出すのですが。</para> </question> <answer> - <para>sendmail FAQ に次のように書いてあります。</para> + <para><application>sendmail</application> + FAQ に次のように書いてあります。</para> - <programlisting>* <quote>Local configuration error</quote> というメッセージが出ます。例えば、 + <programlisting><quote>Local configuration error</quote> というメッセージが出ます。例えば、 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error @@ -253,74 +798,82 @@ relay.domain.net) に送ろうとしたのに、 宛てのメールを受け取れるような設定になっていない場合です。 設定の際に FEATURE(use_cw_file) を指定してある場合には -/etc/sendmail.cw の中に domain.net を追加してください。 -もしくは、/etc/sendmail.cf の中に <quote>Cw domain.net</quote> +/etc/mail/local-host-names の中に domain.net を追加してください。 +もしくは、/etc/mail/sendmail.cf の中に <quote>Cw domain.net</quote> を追加してください。</programlisting> - <para>sendmail FAQ は - <filename>/usr/src/usr.sbin/sendmail</filename> にありますので、 - メールの設定に<quote>おかしなこと</quote>があれば常に読んでください。</para> + <para><application>sendmail</application> FAQ は + <ulink URL="http://www.sendmail.org/faq"></ulink> にありますので、 + メールの設定に <quote>おかしなこと</quote> があれば常に読んでください。</para> </answer> </qandaentry> + <indexterm><primary>PPP</primary></indexterm> <qandaentry> - <indexterm><primary>PPP</primary></indexterm> + <question> - <para>ダイアルアップ PPP ホストで電子メールを使うにはどうしたらいいの?</para> + <para>ダイアルアップ PPP ホストでメールサーバを実行するにはどうしたらいいの?</para> </question> <answer> <para>LAN 上にある FreeBSD マシンを、 インターネットに接続したいとします。FreeBSD マシンは、その LAN でのメールゲートウェイになります。FreeBSD - マシンは専用線接続ではありません - (訳注: ダイアルアップ接続など)。</para> - - <para>これには、少なくとも二つの方法があります。</para> + マシンは専用線接続ではありません (訳注: ダイアルアップ接続など)。</para> <indexterm><primary>UUCP</primary></indexterm> - <para>一つは UUCP を使うことです。</para> + <para>これには、少なくとも二つの方法があります。 + 一つは UUCP を使うことです。</para> - <para>このとき鍵になるのは、あなたのドメインに対するセカンダリ - MX サービスを提供してくれるインターネットサイトをみつけることです。 - 例えば以下のように。</para> + <para>もう一つの方法は、あなたのドメインに対するセカンダリ + MX サービスを提供する常時稼働のインターネットサーバを用意することです。 + たとえば、あなたの会社のドメインが + <hostid role="domainname">example.com</hostid> で、 + ISP があなたのドメインに セカンダリ MX サービスを提供するために + <hostid role="domainname">example.net</hostid> ドメインを + 用意するとしたら次のようにします。</para> - <programlisting>bigco.com. MX 10 bigco.com. -MX 20 smalliap.com.</programlisting> + <programlisting>example.com. MX 10 example.com. +MX 20 example.net.</programlisting> <para>最終的なメール受信先としては、 - 一つのホストだけが定義されるべきです (bigco.com 上の - <filename>/etc/sendmail.cf</filename> ファイルに、<literal>Cw - bigco.com</literal> を追加します)。</para> + 一つのホストだけが定義されるべきです + (<hostid role="domainname">example.com</hostid> 上の + <filename>/etc/mail/sendmail.cf</filename> ファイルに、 + <literal>Cw example.com</literal> を追加します)。</para> <para>送信側の <command>sendmail</command> が、 - メールを配送しようとしている時、モデムの接続を - 介してあなたのところに接続しようとします。大抵の場合、 - あなたのマシンがオンラインでないために、接続はタイムアウト - してしまうでしょう。<command>sendmail</command> は自動的に、 - メールをセカンダリの MX サイト に - (あなたのインターネットプロバイダ) に配送します。セカンダリ MX - サイトは、(<filename>/etc/rc.conf</filename> ファイル に - <literal>sendmail_flag = "-bd - -q15m"</literal>と書かれている場合) 15 分ごとに、 - プライマリ MX サイトにメールを配送しようと、 - あなたのホストに接続しに いきます。</para> + メールを配送しようとしている時、モデムの接続を介してあなたのところ + (<hostid role="domainname">example.com</hostid>) + に接続しようとします。大抵の場合、 + あなたのマシンがオンラインでないために、 + 接続はタイムアウトしてしまうでしょう。 + <command>sendmail</command> プログラムは自動的に、 + たとえばあなたのインターネットプロバイダなどのセカンダリの + MX サイト (<hostid role="domainname">example.net</hostid>) + にメールを配送するでしょう。 + セカンダリ MX サイトは定期的にあなたのホストに接続し、 + プライマリ MX ホスト + (<hostid role="domainname">example.com</hostid>) + にメールを配送しようとするでしょう。</para> <para>ログインスクリプトとして、 - このようなものを使うとよいでしょう:</para> + このようなものを使うとよいでしょう。</para> <programlisting>#!/bin/sh -# Put me in /usr/local/bin/pppbigco +# Put me in /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & -/usr/sbin/ppp -direct pppbigco</programlisting> +/usr/sbin/ppp -direct pppmyisp</programlisting> - <para>ユーザごとにログインスクリプトを作りたい場合には、上記 - のスクリプトの代わりに、<command>sendmail - -qRbigco.com</command> を使用することもできます。 - このようにすると、キューの中の bigco.com に対する - すべてのメールは、すぐに強制的に処理されます。</para> + <para>ユーザごとにログインスクリプトを作りたい場合には、 + 上記のスクリプトの代わりに、 + <command>sendmail -qRexample.com</command> + を使用することもできます。 + このようにすると、 + キューの中の <hostid role="domainname">example.com</hostid> + に対するすべてのメールは、すぐに強制的に処理されます。</para> - <para>さらに、次のような改良もできます:</para> + <para>さらに、次のような改良もできます。</para> <para>以下は、&a.isp; メーリングリストから抜粋してきたメッセージです。</para> @@ -342,7 +895,7 @@ Opgoaway,restrictqrun の定義があります。 root 以外のユーザがキューを処理できるようにするには、 restrictqrun を削除してください。また、MX の再調整が必要かもしれません。 あなたがたは、顧客のサイトに対する一番優先度の高い MX なので、 -次のように定義します: +次のように定義します。 # If we are the best MX for a host, try directly instead of generating # local config error. @@ -352,8 +905,60 @@ OwTrue 顧客のマシンと接続しようとせず、直接あなたがたのホストマシンに配送されるようになります。 ホストマシンに配送されたメールは、続いて顧客のマシンに送られます。 これはホスト名にのみ有効なので、顧客のメールマシンに、 -<quote>host.customer.com</quote> とは別に、<quote>customer.com</quote>も定義する必要があります。 -DNS 上で、<quote>customer.com</quote>に対する A レコードを定義してください。</programlisting> +<quote>host.customer.com</quote> とは別に、<quote>customer.com</quote> も定義する必要があります。 +DNS 上で、<quote>customer.com</quote> に対する A レコードを定義してください。</programlisting> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>なぜ他のホストにメールを送ろうとすると、いつも + <errorname>Relaying Denied</errorname> と怒られてしまうの ?</para> + </question> + + <answer> + <para>FreeBSD がインストールされたデフォルトの状態では、 + <application>sendmail</application> + は動作しているホストからのメールだけを送るように設定されています。 + たとえば POP3 サーバがインストールされているとすると、 + ユーザは学校や職場など他のリモートの場所からメールを確認することが + できます。しかし、彼らは外部からそのホスト以外へのメールを + 送ることはやはりできません。 + 通常、メールを送ろうとしてから少しすると、 + <errorname>5.7 Relaying Denied</errorname> + というエラーメッセージの書かれたメールが + <application>MAILER-DAEMON</application> から送られてくるでしょう。</para> + + <para>これを解決する方法はいくつかあります。 + 一番の正攻法は <filename>/etc/mail/relay-domains</filename> + リレードメインファイルにあなたの ISP のアドレスを書くことです。 + これをするのに簡単な方法は次のとおりです。</para> + + <screen>&prompt.root; <userinput>echo "your.isp.example.com" > /etc/mail/relay-domains</userinput></screen> + + <para>このファイルを作成または編集したら、 + <application>sendmail</application> を再起動してください。 + もしあなたがサーバ管理者でメールをローカルに送りたくないか、 + ポイントを使用して他のマシン (や、さらに他の ISP) の + クライアントまたはシステムへ送りたい時は、とても効果があります。 + さらに、あなたが一つあるいは二つだけのメールアカウントを + 設定している場合でもこれは非常に有用です。 + 追加すべきアドレスがたくさんある場合には、 + 単にこのファイルをあなたの好きなテキストエディタで開いて、 + そして一行に一つずつドメインを追加してください。</para> + + <programlisting>your.isp.example.com +other.isp.example.net +users-isp.example.org +www.example.org</programlisting> + + <para>これで、リストに掲載されているすべてのホスト + (ユーザがあなたのシステムにアカウントを持っていると規定する) + からあなたのシステムを通るすべてのメールは送信に成功するでしょう。 + これはあなたのシステムから SPAM を送ることを認めることなく、 + リモートであなたのシステムからメールを送ることをユーザに + 認めるためのとてもよい方法です。</para> + </answer> </qandaentry> </qandaset> @@ -376,8 +981,9 @@ DNS 上で、<quote>customer.com</quote>に対する A レコードを定義してください。</pr <filename>/etc/resolv.conf</filename> ファイルを設定するか、 またはネームサーバを走らせれば、 他のホストへ電子メールを送ることができるようになります。 - あなたのホスト宛のメールを特定のホストに配送するようにしたい場合には、 - 次の二つの方法があります。</para> + あなたのホスト宛のメールをあなた自身の FreeBSD ホスト上の + MTA (たとえば <application>sendmail</application>) + に配送するようにしたい場合には、次の二つの方法があります。</para> <itemizedlist> <listitem> @@ -395,21 +1001,26 @@ DNS 上で、<quote>customer.com</quote>に対する A レコードを定義してください。</pr </itemizedlist> <indexterm><primary>SMTP</primary></indexterm> - <para>上のどちらを選ぶ場合でも、自分のホストに直接メールが配送されるようにするには恒久的 - (静的) な IP アドレス (動的な PPP ダイアルアップではない) を持っていなければなりません。 - もしファイアウォールの中にいるならば、SMTP トラフィックが通過してくれないといけません。 - もし自分のホストでメールを受け取りたいならば、 - 次の二つのうちの一つができていることを確認してください。</para> + <para>上のどちらを選ぶ場合でも、自分のホストに直接メールが配送されるようにするには恒久的で + 静的 な IP アドレス + (ほとんどの PPP ダイアルアップ設定で用いられる動的なアドレスではなく) + を持っていなければなりません。 + もしファイアウォールの中にいるならば、 + SMTP トラフィックが通過してくれないといけません。 + もし自分のホストでメールを直接受け取りたいならば、 + 次の二つのうちのどちらかができていることを確認してください。</para> <itemizedlist> <indexterm><primary>MX レコード</primary></indexterm> <listitem> - <para>自分のドメインでの MX レコードが自分のホストの + <para>自分のドメインでの + (一番値の小さい) MX レコードが自分のホストの IP アドレスを差していることを確認する。</para> </listitem> <listitem> - <para>自分のドメインの中に自分のホスト用の MX がないことを確認する。</para> + <para>自分のドメインの中に自分のホスト用の + MX エントリがないことを確認する。</para> </listitem> </itemizedlist> @@ -423,10 +1034,12 @@ example.FreeBSD.org &prompt.root; <userinput>host example.FreeBSD.org</userinput> example.FreeBSD.org has address 204.216.27.XX</screen> - <para>もしあなたのマシンが上記のメッセージだけを出力したならば、 <email>yourlogin@example.FreeBSD.org</email> - へのメールは問題なく配送されるでしょう。</para> + へのメールは問題なく配送されるでしょう + (<application>sendmail</application> が + <hostid role="fqdn">example.FreeBSD.org</hostid> + 上で正しく動作していると仮定します)。</para> <para>上記のメッセージの代わりに、</para> @@ -453,11 +1066,13 @@ freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com</programlisting> - <para><hostid>freefall</hostid> は多くの MX - エントリを持っています。もっとも MX の値が小さいホストが最終的にメールを受け取ります。 - もし <hostid>freefall</hostid> - が他の処理で忙しかったり、ダウンしているような場合には、 - 他のホストが一時的にメールをキューにいれます。</para> + <para><hostid>freefall</hostid> は多くの MX エントリを持っています。 + 一番 MX の値の小さいホストが利用可能な場合は直接メールを受け取ります。 + もしなにかの理由でアクセスができない時には、 + 他のホスト (ときどき <quote>バックアップ MX</quote> と呼ばれます) + が一時的にメールを受け取ります。そして、 + より値の小さいホストが利用可能になったときにメールを渡し、 + 最終的に一番値の小さいホストに渡ります。</para> <para>使い勝手をよくするためには、代替の MX サイトは、それぞれ 別の経路でインターネットへ接続しているとよいでしょう。 @@ -471,20 +1086,20 @@ freefall MX 20 who.cdrom.com</programlisting> <para><quote>メールホスト</quote> (メールサーバーとしても知られています) をセットアップするためには、 いろいろなワークステーションに宛てた全てのメールを受ける必要があります。 - 基本的には、あなたのドメイン (この場合だと + 基本的には、あなたのドメイン内 (この場合だと <hostid role="fqdn">*.FreeBSD.org</hostid>) - 宛ての全てのメールを<quote>ハイジャック</quote>し、 + のすべてのホスト名宛てのすべてのメールを <quote>受け取って</quote>、 そのメールをあなたのメールサーバーに配送し、 - ユーザーが POP を通じてあるいはサーバー上で直接、メールをチェックできるようにします。</para> + ユーザーがマスタメールサーバ上でメールをチェックできるようにします。</para> <indexterm><primary>DNS</primary></indexterm> <para>話を簡単にするために、あるユーザーのアカウントはどのマシンでも同じ<emphasis>ユーザー名</emphasis>にすべきです。 - そのためには <command>adduser</command> を使ってください。</para> + そのためには &man.adduser.8; を使ってください。</para> <para>使用する予定のメールホストは、 各ワークステーションごとにメール交換が - できるように設定されていなければなりません。これは、DNS - (すなわち BIND や named) の設定で次のように行なうことができます。</para> + できるように設定されていなければなりません。 + これは DNS の設定で次のように行なうことができます。</para> <programlisting>example.FreeBSD.org A 204.216.27.XX ; ワークステーション MX 10 hub.FreeBSD.org ; メールホスト</programlisting> @@ -493,30 +1108,27 @@ MX 10 hub.FreeBSD.org ; メールホスト</programlisting> そのワークステーション宛てのメールをメールホストに転送する、というものです。</para> <para>自前で DNS サーバを運用しているのでなければ、 - この作業は自分では行なえおこなえません。自分で DNS + この作業は自分では行えません。自分で DNS サーバを運用しないとかできないという場合は、 - インターネットプロバイダ等に依頼して作業をおこなってもらってください。</para> - - <para>この作業により、このワークステーション宛のメールは、MX - (メールエクスチェンジャ) ホストに送られるようになります。A - レコードがどのマシンを指しているかどいうことには関係なく、 - メールは MX ホストに送られます。</para> + あなたの DNS を提供しているインターネットプロバイダなどに依頼して + 作業を行ってもらってください。</para> <para>もしバーチャル電子メールホストを運用するなら次の情報が役に立つでしょう。 例として、あなたには自分のドメイン、ここでは <hostid role="domainname">customer1.org</hostid>、 を持っている顧客がいるとしましょう。 あなたは <hostid role="domainname">customer1.org</hostid> 宛ての全てのメールを - <hostid role="fqdn">mail.myhost.com</hostid> という名前のメールホストに集めたいとします。 + <hostid role="fqdn">mail.myhost.com</hostid> というメールホストに集めたいとします。 DNS エントリーは次のようになるでしょう。</para> <programlisting>customer1.org MX 10 mail.myhost.com</programlisting> - <para>そのドメインに対して電子メールを送りたいだけなら、A - レコードは必要ありません。</para> + <para><hostid role="domainname">customer1.org</hostid> + に対して電子メールを送りたいだけなら、 + A レコードは必要<emphasis>ありません</emphasis>。</para> <note> - <para>これは、<hostid role="domainname">customer1.org</hostid> + <para><hostid role="domainname">customer1.org</hostid> に対して ping を実行しても、 A レコードが存在しない限りうまくいかないことに留意しておいてください。</para> </note> @@ -529,19 +1141,388 @@ MX 10 hub.FreeBSD.org ; メールホスト</programlisting> <itemizedlist> <listitem> <para><literal>FEATURE(use_cw_file)</literal> を使っているなら、 - <filename>/etc/sendmail.cw</filename> ファイルにホストを加えます。 - もし sendmail 8.10 かそれ以降のものであれば該当ファイルは - <filename>/etc/mail/local-host-names</filename> です。</para> + <filename>/etc/mail/local-host-names</filename> + ファイルにホストを加えます。 + もし <application>sendmail</application> のバージョンが + 8.10 より前であれば該当ファイルは + <filename>/etc/sendmail.cw</filename> です。</para> </listitem> <listitem> <para><filename>/etc/sendmail.cf</filename> もしくは - sendmail 8.10 以降なら <filename>/etc/mail/sendmail.cf</filename> + <application>sendmail</application> 8.10 以降なら + <filename>/etc/mail/sendmail.cf</filename> といったファイルに <literal>Cwyour.host.com</literal> という行を加えます。</para> </listitem> </itemizedlist> </sect2> </sect1> + + <sect1 id="SMTP-UUCP"> + <title>UUCP とともに SMTP を使う</title> + + <para>FreeBSD とともに出荷されている + <application>sendmail</application> の設定は、 + サイトがインターネットに直接接続しているものとして設計されています。 + UUCP 経由でメールを交換したいサイトは、他にも + 設定ファイルをインストールしなければいけません。</para> + + <para><filename>/etc/mail/sendmail.cf</filename> + を手動で調整することは先進的なトピックです。 + <application>sendmail</application> のバージョン 8 は設定ファイルを + &man.m4.1; プリプロセッサから生成します。 + これにより、高度に抽象化された設定を行うことができます。 + &man.m4.1; による設定ファイルは + <filename>/usr/src/usr.sbin/sendmail/cf</filename> + 以下にあります。</para> + + <para>もしシステムをすべてのソースとともにインストールしていなければ、 + sendmail の設定材料は分割された個別のソース tarball を取得してください。 + FreeBSD のソースコードが入った CDROM をマウントしているのなら、</para> + + <screen>&prompt.root; <userinput>cd /cdrom/src</userinput> +&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail</userinput></screen> + + <para>と展開してください (展開してもたった数百 KB 程度です)。 + <filename>cf</filename> ディレクトリの + <filename>README</filename> ファイルは + m4 による設定の基本的な手引として役に立つでしょう。</para> + + <para>UUCP 配送に対応するための一番よい方法は + <literal>mailertable</literal> 機能を使用することです。 + これは経路を決定するために + <application>sendmail</application> + が使用できるデータベースを作成します。</para> + + <para>まずはじめに <filename>.mc</filename> + ファイルを作成しなければいけません。 + <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> + にいくつか例があります。<filename>foo.mc</filename> + という名前のファイルをあなたが作成したとすると、 + 有効な <filename>sendmail.cf</filename> + ファイルへ変換するには次のようにするだけです。</para> + + <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput> +&prompt.root; <userinput>make foo.cf</userinput> +&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen> + + <para>典型的な <filename>.mc</filename> ファイルは次のようになるでしょう。</para> + + <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>') OSTYPE(bsd4.4) + +FEATURE(accept_unresolvable_domains) +FEATURE(nocanonify) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') + +define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>) +define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') + +MAILER(local) +MAILER(smtp) +MAILER(uucp) + +Cw <replaceable>your.alias.host.name</replaceable> +Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting> + + <para> + <literal>accept_unresolvable_domains</literal>, + <literal>nocanonify</literal> および + <literal>confDONT_PROBE_INTERFACES</literal> 機能を含んでいる行は、 + メール配送時にまったく DNS を使用しません。 + <literal>UUCP_RELAY</literal> の記述は UUCP 配送に対応するのに必要です。 + そこにインターネットホスト名を単に書くだけで + .UUCP pseudo ドメインアドレスを扱うことができるようになります。 + 大抵の場合、あなたの ISP のメールリレーをそこに入力するでしょう。</para> + + <para>次に、 + <filename>/etc/mail/mailertable</filename> が必要になります。 + メールを配送するリンクが外界との間に一つだけの場合は、 + 次のようにファイルを記述するだけで十分でしょう。</para> + + <programlisting># +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +. uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting> + + <para>次はさらに複雑な例です。</para> + + <programlisting># +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable +# +horus.interface-business.de uucp-dom:horus +.interface-business.de uucp-dom:if-bus +interface-business.de uucp-dom:if-bus +.heep.sax.de smtp8:%1 +horus.UUCP uucp-dom:horus +if-bus.UUCP uucp-dom:if-bus +. uucp-dom:</programlisting> + + <para>はじめの三行はドメインで宛先を指定されたメールが、 + 配送路を <quote>近道</quote> するために、 + デフォルトルートではなく代わりにいくつかの UUCP 隣接ホストへ送られる特別な場合を扱います。 + 次の行はメールを SMTP で配送可能なローカルイーサネットドメインへ送ります。 + 最後に + <literal><replaceable>uucp-neighbor + </replaceable>!<replaceable>recipient</replaceable></literal> + がデフォルトルートを上書きすることを許可するための UUCP 隣接ホストは + .UUCP 仮想ドメイン記法で言及されます。 + 最後の行は常に他のすべてが当てはまるシングルドットです。 + これは UUCP 隣接ホストへの UUCP 配送をすることで、 + 世界に向けたあなたの普遍的メールゲートウェイとして役に立ちます。 + <literal>uucp-dom:</literal> キーワードの後ろにあるノード名はすべて、 + <literal>uuname</literal> コマンドを使用することで確かめられる正しい + UUCP 隣接ホストである必要があります。</para> + + <para>このファイルは、実際に使用する前に DBM + データベース形式に変換する必要があることに注意してください。 + これを実行するコマンドラインは mailertable + ファイルの先頭にコメントとして書かれています。 + mailertable を変更するたびにいつもこのコマンドを実行する必要があります。</para> + + <para>最後のアドバイス: もし、 + いくつかのメールルーティングがうまく動いているかどうか分からないときは + <application>sendmail</application> に + <option>-bt</option> オプションをつけることを覚えておいてください。 + これは <application>sendmail</application> を + <emphasis>アドレステストモード</emphasis> で起動します。 + あなたがテストしたいメールルーティングのアドレスを後につけて、 + 単純に <literal>3,0</literal> と入力してください。 + 最後の行は、内部で使われたメールエージェント、 + このエージェントが呼び出された目的地ホスト、および + (もしかしたら変換された) アドレスを表示します。 + このモードを終了するには + <keycombo action="simul"><keycap>Ctrl</keycap><keycap>D</keycap></keycombo> + を入力します。</para> + + <screen>&prompt.user; <userinput>sendmail -bt</userinput> +ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) +Enter <ruleset> <address> +<prompt>></prompt> <userinput>3,0 foo@example.com</userinput> +canonify input: foo @ example . com +... +parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo < @ example . com . > +<prompt>></prompt> <userinput>^D</userinput></screen> + </sect1> + + <sect1 id="SMTP-dialup"> + <title>ダイアルアップ接続でメールを使う</title> + + <para>あなたが固定 IP アドレスを持っているのなら、 + デフォルトから何も変更する必要はありません。 + 割りあてあてられたインターネット名をホスト名に設定すれば、 + <application>sendmail</application> が残りをやってくれます。</para> + + <para>あなたが動的に割り当てられた IP アドレスを持っていて、 + インターネットに接続するのにダイアルアップ PPP を使用しているのなら、 + おそらく ISP のメールサーバにメールボックスがあるでしょう。 + ここでは、あなたの ISP のドメインが + <hostid role="domainname">example.net</hostid>, + あなたのユーザ名が <username>user</username>, + あなたのマシンは <hostid role="fqdn">bsd.home</hostid> + と呼ばれているものとします。 + また、ISP から、メールリレーとして <hostid + role="fqdn">relay.example.net</hostid> + を使用してよいと通知されているとします。</para> + + <para>(訳注: ISP 上の) メールボックスからメールを取得するためには、 + 取得アプリケーションをインストールしないといけません。 + <application>fetchmail</application> ユーティリティは、 + さまざまなプロトコルの多くに対応しているのでよい選択肢です。 + 通常、あなたの ISP は POP3 を提供しています。 + あなたが user-PPP を使用しているなら、次のエントリを + <filename>/etc/ppp/ppp.linkup</filename> に追加することで、 + インターネット接続が確立したときに自動的ににメールを取得することができます。</para> + + <programlisting>MYADDR: + !bg su user -c fetchmail</programlisting> + + <para>あなたがローカルではないアカウントへのメールを配送するために + (下記のような) <application>sendmail</application> + を使用しているなら、 + インターネット接続が確立するとすぐに、 + <application>sendmail</application> + があなたのメールキューを処理して欲しいとおそらく考えるでしょう。 + これを行うには、<filename>/etc/ppp/ppp.linkup</filename> ファイルの + <command>fetchmail</command> コマンドの後に次のコマンドを追加してください。</para> + + <programlisting> !bg su user -c "sendmail -q"</programlisting> + + <para><hostid role="fqdn">bsd.home</hostid> 上に <username>user</username> + というアカウントを所有しているとします。 + <hostid role="fqdn">bsd.home</hostid> 上の <username>user</username> + のホームディレクトリに <filename>.fetchmailrc</filename> + ファイルを作成します。</para> + + <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting> + + <para>このファイルはパスワード <literal>MySecret</literal> + を含んでいるので、<username>user</username> + を除く他の誰にも読めるようになっていてはいけません。</para> + + <para>正しい <literal>from:</literal> ヘッダでメールを送るためには、 + <application>sendmail</application> が <literal>user@bsd.home</literal> + ではなく <literal>user@example.net</literal> を使用するようにしなくてはいけません。 + また、素早くメール送信をするために + <application>sendmail</application> にすべてのメールを + <hostid role="fqdn">relay.example.net</hostid> 経由で送るようにもしたいかもしれません。</para> + + <para>次の <filename>.mc</filename> ファイルで十分でしょう。</para> + + <programlisting>VERSIONID(`bsd.home.mc version 1.0') +OSTYPE(bsd4.4)dnl +FEATURE(nouucp)dnl +MAILER(local)dnl +MAILER(smtp)dnl +Cwlocalhost +Cwbsd.home +MASQUERADE_AS(`example.net')dnl +FEATURE(allmasquerade)dnl +FEATURE(masquerade_envelope)dnl +FEATURE(nocanonify)dnl +FEATURE(nodns)dnl +define(`SMART_HOST', `relay.example.net') +Dmbsd.home +define(`confDOMAIN_NAME',`bsd.home')dnl +define(`confDELIVERY_MODE',`deferred')dnl</programlisting> + + <para><filename>.mc</filename> ファイルを <filename>sendmail.cf</filename> + ファイルに変換する方法の詳細については前の節を参照してください。 + また、<filename>sendmail.cf</filename> ファイルを変更した後は、 + <application>sendmail</application> を再起動し忘れないでください。</para> + </sect1> + + <sect1 id="SMTP-Auth"> + <title>SMTP 認証</title> + + <para>メールサーバ上で <acronym>SMTP</acronym> 認証を行うと、 + 多くの利益があります。 + <acronym>SMTP</acronym> 認証は <application>sendmail</application> + にもう一つのセキュリティ層を追加することができます。 + さらに、ホストを切りかえるモバイルユーザにとっては、 + その都度メールクライアントの設定を変更せずとも + 同じメールサーバを利用できるようになります。</para> + + <procedure> + <step> + <para>ports から + <filename role="package">security/cyrus-sasl</filename> + をインストールします。 + この port は + <filename role="package">security/cyrus-sasl</filename> にあります。 + <filename role="package">security/cyrus-sasl</filename> + にはここで使用する方法に対する多くのコンパイルオプションがあり、 + 確実に <option>pwcheck</option> オプションを選択してください。</para> + </step> + + <step> + <para><filename role="package">security/cyrus-sasl</filename> + をインストールした後に + <filename>/usr/local/lib/sasl/Sendmail.conf</filename> + を編集して (もし無ければ作成して) 次の行を追加してください。</para> + + <programlisting>pwcheck_method: passwd</programlisting> + + <para>この方法は <application>sendmail</application> + があなたの FreeBSD の <filename>passwd</filename> + データベースに対して認証することを可能にします。 + この方法は <acronym>SMTP</acronym> 認証に必要となる、 + それぞれのユーザに対する一組の新しいユーザ名とパスワードを + 作成する際のトラブルを減らし、 + ログインパスワードとメールパスワードを同じままにします。</para> + </step> + + <step> + <para>ここで <filename>/etc/make.conf</filename> 編集し、 + 次の行を加えます。</para> + + <programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL +SENDMAIL_LDFLAGS=-L/usr/local/lib +SENDMAIL_LDADD=-lsasl</programlisting> + + <para>これらの行は <application>sendmail</application> に対して、 + コンパイルするときに <filename role="package">cyrus-sasl</filename> + とリンクするための適切な設定オプションを与えるものです。 + <application>sendmail</application> を再コンパイルする前に + <filename role="package">cyrus-sasl</filename> + がインストールされていることを確かめてください。</para> + </step> + + <step> + <para>次のコマンドを入力して <application>sendmail</application> + を再コンパイルしてください。</para> + + <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput> +&prompt.root; <userinput>make cleandir</userinput> +&prompt.root; <userinput>make obj</userinput> +&prompt.root; <userinput>make</userinput> +&prompt.root; <userinput>make install</userinput></screen> + + <para><application>sendmail</application> のコンパイルは + <filename>/usr/src</filename> が大幅に変更されていなくて、 + 必要な共有ライブラリが利用可能であれば何の問題も起こらないでしょう。</para> + </step> + + <step> + <para><application>sendmail</application> + をコンパイルして再インストールした後は、 + <filename>/etc/mail/freebsd.mc</filename> ファイル + (またはあなたが <filename>.mc</filename> + ファイルとして使用しているファイル。 + 多くの管理者は唯一の名前を用いるために &man.hostname.1; の出力を + <filename>.mc</filename> として使用することを選んでいます) + を編集してください。 + 次の行を加えてください。</para> + + <programlisting>dnl set SASL options +TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl +define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl +define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl</programlisting> + + <para>これらのオプションは、ユーザを認証するために + <application>sendmail</application> + が利用可能な異なる方法を設定します。 + もし <application>pwcheck</application> + 以外の方法を使用したいのならドキュメントを参照してください。</para> + </step> + + <step> + <para>最後に <filename>/etc/mail</filename> で &man.make.1; + を実行してください。 + これにより、新しい <filename>.mc</filename> + ファイルから <filename>freebsd.cf</filename> という名前 + (またはあなたの <filename>.mc</filename> に使用している名前) の + <filename>.cf</filename> ファイルが作成されます。 + それから <command>make install restart</command> + コマンドを実行してください。 + 新しい <filename>.cf</filename> ファイルが + <filename>sendmail.cf</filename> にコピーされ、 + <application>sendmail</application> が適切に再起動されるでしょう。 + この手続きについての詳細は + <filename>/etc/mail/Makefile</filename>を参照してください。</para> + </step> + </procedure> + + <para>すべてがうまくいけば、ログイン情報をメールクライアントに入力し、 + テストメッセージを送ることができるでしょう。 + より詳細に調べるには <application>sendmail</application> の + <option>LogLevel</option> を 13 に設定し、 + すべてのエラーについて <filename>/var/log/maillog</filename> + を見てください。</para> + + <para>このサービスがシステムを起動した後にいつでも利用可能となるように、 + <filename>/etc/rc.conf</filename> に次の行を追加しておくとよいでしょう。</para> + + <programlisting>sasl_pwcheck_enable="YES" +sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting> + + <para>これにより、システムの起動時に + <acronym>SMTP_AUTH</acronym> が確実に初期化されるでしょう。</para> + + <para>詳細については + <ulink url="http://www.sendmail.org/~ca/email/auth.html"> + <acronym>SMTP</acronym> 認証</ulink> に関する + <application>sendmail</application> の文書を参照してください。</para> + </sect1> </chapter> <!-- |