Eximは、 Unix系オペレーティングシステムで使用されるメール転送エージェント(MTA)です。EximはGNU一般公衆利用許諾契約書(GPL)に基づいて配布されるフリーソフトウェアであり、受信メールのチェック機能など、汎用性と柔軟性に優れたメール送信ツールとなることを目指しています。
Eximは、ほとんどのUnix系システムだけでなく、Cygwinエミュレーションレイヤーを使用してMicrosoft Windowsにも移植されています。Exim 4は現在、 Debian LinuxシステムのデフォルトのMTAです。[ 3 ]
特に英国のインターネットサービスプロバイダ[ 4 ]や大学には、多くのEximインストールが存在します。EximはGNU MailmanメーリングリストマネージャやcPanelでも広く使用されています。
2023年3月にE-Soft, Inc.が行った調査[ 5 ]によると、インターネット上で一般にアクセス可能なメールサーバーの約59%がEximを実行していると推定された。
Exim の最初のバージョンは、1995 年にPhilip Hazelによってケンブリッジ大学コンピューティングサービスの電子メールシステムで使用するために作成されました。当初、その名前はEX Experimental Internet Mailerの略でした。[ 6 ]元々は古い MTA であるSmail -3 をベースにしていましたが、その後、設計と哲学において Smail-3 から分岐しました。[ 7 ] [ 8 ]
EximはSmailと同様に、 Sendmailの設計モデルに従っており、単一のバイナリがMTAのすべての機能を制御します。Eximには、権限を取得または失う明確な段階があります。[ 9 ]
Exim のセキュリティには、長年にわたって数々の深刻なセキュリティ問題が診断されてきました。 [ 10 ]再設計されたバージョン 4 がリリースされて以来、リモート コード実行の脆弱性が 4 つと、実行時ユーザーにどれだけの信頼を置くのが適切かに関する概念的な脆弱性が 1 つありました。後者は、リビジョン 4.73 のセキュリティ ロックダウンで修正されました。これは、Exim が動作構成との後方互換性を破った非常にまれなケースの 1 つです。
Eximは高度な設定が可能であるため、他のMTAにはない機能を備えています。メールポリシー制御のための豊富な機能を備えており、管理者はシステムを通じてメールを送信または中継できるユーザーを制御できます。バージョン4.xでは、アクセス制御リスト(ACL)ベースのシステムへと進化し、非常に詳細かつ柔軟な制御が可能になりました。また、コンテンツスキャン用のフレームワークが統合され、ウイルス対策やスパム対策を容易に導入できるようになりました。これにより、Eximは多様なメールポリシーの適用に非常に適したツールとなっています。
設定は(通常は単一の)設定ファイルを通して行われ、そのファイルには一般的な設定と変数を含むメインセクションと、以下のオプションセクションを含める必要があります。
設定ファイルには他のファイルを含めることができ、それによって2種類の異なる設定スタイルが生まれる。
Exim の設定スタイルには、大きく分けて 2 つの流派があります。ネイティブ流派では、Exim の設定を 1 つのファイルに保持し、外部ファイルはデータ ソースとしてのみ使用します。これは、Philip Hazel 氏の好みとパフォーマンスに関する指摘に強く影響を受けています。設定ファイルは、受信接続の受信時と配信時に、フォーク後に実行されるすべての実行時に再読み込みされるためです。
2番目によく見られるスタイルは、Debianスタイルです。これは、管理者が設定ファイルを編集することなく、インストールされたアプリケーションが自動的にメール統合サポートを提供するように設計されているものです。このスタイルにはいくつかのバリエーションがあり、Debian はパッケージの一部としてそのアプローチに関するドキュメントを提供しています。これらのアプローチでは、debconf 設定ファイルを使用して Exim 設定ファイルを作成し、テンプレートや設定フラグメントを含むディレクトリも使用します。メタ設定は、DC_で始まる名前のマクロで調整されます。exim のスーパーバイザーが呼び出されると、設定ファイルが再処理され、exim バイナリが使用する単一ファイルの設定が生成されます。
Because the Debian approach diverges significantly from the Exim one it is common to find a lack of support for the Debian approach on the regular Exim mailing-lists, with people advised [11][12] to ask Debian questions on the Debian-managed mailing-list. The Ubuntu packaging [13] still advises users to use the Debian mailing-list.
Exim has extensive and exhaustive documentation; if a feature or some behaviour is not documented then this is classed as a bug. The documentation consists of The Exim Specification and two ancillary files: the experimental specification for features that might disappear and "NewStuff", which tracks very recent changes that might not have been fully integrated into the main specification. The Exim Specification is available in multiple formats, including online in HTML and in plain-text for fast searching. The document preparation system ensures that the plain-text format is highly usable.
Exim has been deployed in busy environments, often handling thousands of emails per hour efficiently. Exim is designed to deliver email immediately, without queueing. However, its queue processing performance is comparatively poor when queues are large (which happens rarely on typical low-traffic sites but can happen regularly on high-traffic sites).
Unlike qmail, Postfix, and ZMailer, Exim does not have a central queue manager (i.e. an equivalent of qmail-send, qmgr, or scheduler). There is thus no centralized load balancing of queue processing (leading to disproportionate amounts of time being spent on processing the same queue entries repeatedly). System-wide remote transport concurrency is unlimited by default (leading to a "thundering herd problem" when multiple messages addressed to a single domain are submitted at once) but can be limited by the configuration. In Philip Hazel's own words:[14]
In 1997, Hazel replaced Exim's POSIXregular expression library written by Henry Spencer with a new library he developed called PCRE (Perl Compatible Regular Expressions). Perl regular expressions are much more powerful than POSIX and other common regular expressions, and PCRE has become popular in applications other than Exim. In 2021 (after the 4.95 release) Exim transitioned to PCRE2.
歴史的に、Exim は、メインのドキュメントが完全に最新の状態になったときにのみ最初の小数点桁が更新されるという独特なバージョン番号付けスキームを使用していました。それまでは、変更は NewStuff ファイルに蓄積されていました。このため、バージョン 0.01 の変更は、必ずしも完全に文書化されていない重要な変更を示す可能性があります。[ 15 ] 2005 年に、Exim のバージョン番号付けの変更が議論の対象となりました。[ 16 ]
近年、Eximの文書作成システムは大幅に改良され、変更内容はExim仕様書に即座に反映されるようになりました。4.70リリースは4.69から自然に派生したものであり、4.6xリリースには最新のドキュメントが付属していました。
フィリップ・ヘイゼルは2007年にケンブリッジ大学を退職し、Eximの保守は保守チームに引き継がれた。Eximは現在も活発に保守されており、頻繁にリリースが行われている。