注意: このページは、2003年4月20日現在の http://www.exim.org/intro.html の邦訳で、和志武功久が勝手に翻訳し、若干主観的な脚色を加えたものです。 誤訳などのミスがありますので、 正確な情報に関してはオリジナルな文書を参照してください。 (note: This page is a translation of the exim introduction page. This page may contain some errors caused by mis-translation. Please refer to the original page for the accurate information)
Exim は、インターネットにつながったUnixシステムで使うことを目的に、ケンブリッジ大学で開発された電子メール配送エージェント (MTA; Message Transfer Agent) です。 Exim は、GNU一般公有使用許諾書 (GNU GPL; GNU General Public Licence) の下に、自由に利用することができます。 Smail 3 の流儀に近いものがありますが、exim はより拡張性に富んだ機能を有しています。特に、特定のホストやネットワーク、送信者からの電子メールを拒絶するオプションなどが用意されているので、メール爆弾や商用ジャンクメールに対する抵抗力が強い点が特徴です。
Exim is a message transfer agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the Internet. It is freely available under the terms of the GNU General Public Licence. In style it is similar to Smail 3, but its facilities are more extensive, and in particular it has some defences against mail bombs and unsolicited junk mail in the form of options for refusing messages from particular hosts, networks, or senders.
ここでは、Exim の主な機能についてまとめています。 これらの説明については、さらに詳しくまとめた概要も用意してあります。 Exim の仕様書には、これらの機能の詳しい説明に加えてフィルタリング機能についての文書なども含まれていて、ウェブサイトに用意されています。 「概要」の完全版はこちら
The major features are summarised below. There is also an overview which expands on these features. Exim has an extensive set of documentation included in the exim specification, additionally there are documents on the filtering functionality and other documentation is being made available on this web site. The full overview is also available.
基本機能
Basic Features
- 多くのコンフィギュレーション・オプションは、変数のように使うことができる "拡張可能な文字列" として与えられていますので、ファイル検索の結果を使ったりできます。お望みとあらば、Exim の動作のほとんどすべてをデータベースで定義することもできます。たとえば、シェルアカウントを持たないユーザーのいるマシンでのローカル配送も実現できます。
- Many configuration options can be given as expansion strings, and as these can include file lookups, much of Exim's operation can be made table-driven if desired. For example, it is possible to do local delivery on a machine on which the users do not have accounts.
- 多くのコンフィギュレーション・パラメータには正規表現を使えます。
- Regular expressions are available in a number of configuration parameters.
- ドメインリストは外部ファイルに記述できますので、大量のローカルドメインでも簡単に扱えます。
- Domain lists can include file lookups, making it possible to support a large number of local domains.
- 電子メールの最大サイズも指定ができます。
- The maximum size of message can be specified.
- Exim は、1台のマシン上で複数のローカルドメインを独立して扱うことができます。 つまり、ドメインごとに alias ファイルを作成することができます。 一般的に バーチャルドメイン と呼ばれている機能です。
- Exim can handle a number of independent local domains on the same machine; each domain can have its own alias files, etc. These are commonly called virtual domains.
- Exim のビルトイン機能には、メール・フィルタリング機能が含まれています。 これにより、ユーザーが各自でメールのフィルタリングを設定できるようになり、また外部ツールを使うことなく直接メールのフィルタリングを行うことができます。 (ユーザー用フィルターだけではなく) すべてのメッセージに適用されるシステム・フィルターも用意されています。
- Exim contains an optional built-in mail filtering facility. This enables users to set up their own mail filtering in a straightforward manner without the need to run an external program. There can also be a system filter file that applies to all messages.
- メッセージの配送が遅れるときは、送信者に周期的な警告が自動的に送られます。警告の間隔も設定可能です。
- Periodic warnings are automatically sent to messages' senders when delivery is delayed -- the time between warnings is configurable.
- キューに入ったメッセージは、別々に配送のコントロールが可能です。 つまり、特定の文字列を含むアドレス宛てのメッセージのみ配送することも可能です。
- A queue run can be manually started to deliver just a particular portion of the queue, or those messages with a recipient whose address contains a given string.
- Exim は、ローカル配送を行うとき以外は常に root として稼動するように設定することもでき、その動作は任意の UID と GID で独立したプロセスによって行われます。 逆に、必要なときのみ root になるように設定することもできます; 到着メッセージの受け取り時や SMTP プロトコルを喋ってメッセージを外部に送信する場合には、root である必要はないですしね。
- Exim can be configured to run as root all the time, except when performing local deliveries, which it always does in a separate process under an appropriate uid and gid. Alternatively, it can be configured to run as root only when needed; in particular, it need not run as root when receiving incoming messages or when sending out messages over SMTP.
SMTP の受け入れ
Incoming SMTP
- 特定のマシンからの SMTP 接続 (特定の IDENT からの SMTP 接続も含む) を遮断することができます。 また、特定の送信者から受け取ったメッセージを破棄することもできます。
- SMTP calls from specific machines, optionally from specific idents, can be locked out, and incoming SMTP messages from specific senders can also be locked out.
- キューに入れられたメッセージは、管理者が「frozen」(凍結)「thawed」(解凍)することができます。
- Messages on the queue can be `frozen' and `thawed' by the administrator.
SMTP の送り出し
Outgoing SMTP
- Exim は、配送が遅れているホストがあれば、そのホストへの複数の配送を1つにまとめ、効率的に配送することができます。
- Exim can perform multiple deliveries down the same SMTP channel after deliveries to a host have been delayed.
- Exim は、メッセージの受け取り後、ローカル配送は直ちに行い、リモート配送はキュー・プロセスが拾うまで配送しないように設定することができます。 この設定によって、複数のメッセージを単一の SMTP 接続で送り出すことができるようになります。
- Exim can be configured to do local deliveries immediately but to leave remote deliveries until the message is picked up by a queue-runner process. This increases the likelihood of multiple messages being sent down a single SMTP connection.
- 複数のリモートホストに同一メッセージのコピーを複数配送する場合、 平行して行われるリモート配送の接続の最大数を設定しておくことができます。
- When copies of a message have to be delivered to more than one remote host, up to a configured maximum number of remote deliveries can be done in parallel.
ローカル配送
Local Deliveries
-
Eximは、「
.forward」ファイルを探す前に、まずユーザーのホームディレクトリが利用可能かどうか調べます。これは、NFSマウントができていない場合の対策です。 - Exim stats a user's home directory before looking for a `.forward' file, in order to detect the case of a missing NFS mount.
-
フィルターや
.forwardファイルを使うことで、 ユーザー名にprefix/suffixを付けて配送をコントロールすることができます。 - There is support for multiple user mailboxes controlled by prefixes or suffixes on the user name, either via the filter mechanism or through multiple `.forward' files.
モニタリングとパフォーマンスチェッカ
Monitoring and Performance Tools
- The Exim Monitor (通称 eximon) がおまけとしてついています。 eximon は、Exim のプロセス情報を X window で表示し、 管理者はGUIを通じて様々な制御アクションをとることができます。
- The Exim Monitor is an optional extra; it displays information about Exim's processing in an X window, and an administrator can perform a number of control actions from the window interface.
- キューの統計、各プロセスの状況、配送データベースの状況、 ログファイルの統計などをレポートするツールが付属しています。
- There are a set of tools for summarising the queue, determining what each exim process is currently doing, examining the deliveries hints databases, and summarising the log files into a concise report on activity.
spam・メール爆弾などへの対策機能
SPAM/UCE/UBE Limitation Features
- 様々な方法で送信者をブロックすることができます。 たとえば、ユーザー名の組み合わせ、ドメインの正規表現、など。
- Senders can be blocked using a variety of methods, including the ability to apply a set of username or regular expression patterns to incoming mail from particular (or all) domains.
- すべてのアドレスは、SMTPトランザクションの間に有効性をチェックされます。 したがって、存在しないドメインからのメールを極力減らすことができます。
- All addresses can be checked for validity during the SMTP transaction thus allowing the elimination of mail from non-existent domains.
- リレーは、送信ホスト・ネットワーク・送受ドメインなどによって きっちりと制御できます。
- Relaying can be tightly controlled based on sending host, network or sending/recipient domains.
-
それ (SMTP接続時の拒否など) 以外にも、システムフィルターを使って
任意の条件でメッセージを扱うことができます。
たとえば、特定の
X-Mailer:ヘッダーによって メールをブロックすることができます。 - If all else fails the system filter can be used to deal with messages based on arbitrary conditions that you can program in (for example block mail with a particular X-Mailer: header.
制限事項
Limitations
-
Exim は ANSI C で書かれています。
最近ではこのこと自体が問題になることは少ないでしょう。
しかし、ANSI C ライブラリに完全対応していないシステムを考慮して、
Exim は、たとえば互換性が比較的低い
sprintf()関数の戻り値を使わないようにしています。 また、オリジナルのstrerror()関数を用意したり、memmove関数をbcopy()関数に置き換えるなど、必要に応じてこれらの関数をもたない SunOS4 などのシステムでも使えるようになっています。 - Exim is written in ANSI C. This should not be much of a limitation these days. However, to help with systems that lack a true ANSI C library, Exim avoids making any use of the value returned by the `sprintf()' function, which is one of the main incompatibilities. It has its own version of `strerror()' for use with SunOS4 and any other system that lacks this function, and a macro can be defined to turn `memmove()' into `bcopy()' if necessary.
- Exim は、14文字以上の長さのファイル名をもつファイルを使用することがあります。
- Exim uses file names that are longer than 14 characters.
- Exim は、インターネットメールサーバーとしての利用を前提にしており、 したがって RFC 822 で定義されたドメイン名のフォーマットのみを扱うことができます。 設定次第では簡単に変換できるものもありますが、bang path を完全に扱えるわけではありません。
- Exim is intended for use as an Internet mailer, and therefore handles addresses in RFC 822 domain format only. It cannot handle bang paths, though simple two-component bang paths can be converted by a straightforward rewriting configuration.
- Exim では、すべてのアドレスにはドメインが付いているものと見なします。 ローカルメッセージでは、ドメイン名のないアドレスには設定されたドメイン名が自動的に付け加えられます。 コンフィギュレーション・オプションは、外部システムから配送されてきたメールのうち、ドメインのないアドレスをもつものどのように扱うか定めることができます。
- Exim insists that every address it handles has a domain attached. For incoming local messages, domainless addresses are automatically qualified with a configured domain value. Configuration options specify from which remote systems unqualified addresses are acceptable.
- 現在実装されている唯一の外部トランスポートは、(SOCKETを利用した) TCP/IPネットワーク経由のSMTPトランスポートのみです(これはインターネット上にあるマシンには最も適しています)。 ただし、パイプ・トランスポートが利用でき、"batched SMTP" フォーマットでメッセージを書くことができます;つまり、メッセージを他の配送メカニズムを利用して送信することができるようになっています。 "batched SMTP" からのメッセージ受け取りもできます。
- The only external transport currently implemented is an SMTP transport over a TCP/IP network (using sockets), suitable for machines on the Internet. However, a pipe transport is available, and there are facilities for writing messages to files in `batched SMTP' format; this can be used to send messages to some other transport mechanism. Batched SMTP input is also catered for.
元文書 by
Nigel Metheringham
$Id: intro.html,v 1.3 2002/11/22 10:56:48 nigel Exp $
日本語翻訳 by Norihisa Washitake