Exim-4.97

Exim の概要

Exim パッケージは、メール転送エージェント (mail transfer agent) を提供します。 ケンブリッジ大学にて開発され、GNU Public License により公開されています。

[注記]

注記

LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。

パッケージ情報

  • ダウンロード (HTTP): https://ftp.exim.org/pub/exim/exim4/exim-4.97.tar.xz

  • ダウンロード MD5 sum: dba384773ac0b7423927051bf3a6dad8

  • ダウンロードサイズ: 1.9 MB

  • 必要ディスク容量: 18 MB

  • 概算ビルド時間: less than 0.1 SBU (at -j4)

追加のダウンロード

  • Additional formats of the documentation (text-based docs are shipped with the sources) can be downloaded by following the links shown at https://exim.org/docs.html.

Exim の依存パッケージ

必須

libnsl-2.0.1, File-FcntlLock-0.22 and pcre2-10.42

任意

TDB (alternative to GDBM, built in LFS), Cyrus SASL-2.1.28, libidn-1.41, Linux-PAM-1.5.3, MariaDB-10.11.6 or MySQL, OpenLDAP-2.6.6, GnuTLS-3.8.2, PostgreSQL-16.1, SQLite-3.44.2, グラフィック環境, Heimdal GSSAPI, libspf2, and OpenDMARC

Exim のインストール

Exim をビルドするにあたっては、root ユーザーになって exim というユーザーおよびグループを作成する必要があります。 これは exim デーモンを起動するものになります。

groupadd -g 31 exim &&
useradd -d /dev/null -c "Exim Daemon" -g exim -s /bin/false -u 31 exim

Configure Exim with the following commands:

sed -e 's,^BIN_DIR.*$,BIN_DIRECTORY=/usr/sbin,'    \
    -e 's,^CONF.*$,CONFIGURE_FILE=/etc/exim.conf,' \
    -e 's,^EXIM_USER.*$,EXIM_USER=exim,'           \
    -e '/# USE_OPENSSL/s,^#,,' src/EDITME > Local/Makefile &&

printf "USE_GDBM = yes\nDBMLIB = -lgdbm\n" >> Local/Makefile

If you want to add Linux PAM support, also run the following commands:

sed -i '/# SUPPORT_PAM=yes/s,^#,,' Local/Makefile
echo "EXTRALIBS=-lpam" >> Local/Makefile

Build Exim with the following command:

make

このパッケージにテストスイートはありません。

root ユーザーになって以下を実行します。

make install                                    &&
install -v -m644 doc/exim.8 /usr/share/man/man8 &&

install -vdm 755    /usr/share/doc/exim-4.97 &&
cp      -Rv doc/*   /usr/share/doc/exim-4.97 &&

ln -sfv exim /usr/sbin/sendmail                 &&
install -v -d -m750 -o exim -g exim /var/spool/exim

コマンド説明

sed -e ... > Local/Makefile: Most of Exim's configuration options are defined in Local/Makefile, which is created from the src/EDITME file. This command specifies the minimum set of options. Descriptions for the options are listed below.

printf ... > Local/Makefile: Setting those variables allows to use GDBM instead of the default Berkeley DB. Remove this command if you have installed Berkeley DB (非推奨).

BIN_DIRECTORY=/usr/sbin: This installs all of Exim's binaries and scripts in /usr/sbin.

CONFIGURE_FILE=/etc/exim.conf: This installs Exim's main configuration file in /etc.

EXIM_USER=exim: This tells Exim that after the daemon no longer needs root privileges, the process needs to hand off the daemon to the exim user.

USE_OPENSSL: uncommenting USE_OPENSSL=yes and USE_OPNSSL_PC=yes tells the build system to use OpenSSL, and to find the needed libraries with pkg-config.

Uncomment EXIM_MONITOR: This allows building the Exim monitor program, which requires X Window System support, and is commented out by default.

ln -sfv exim /usr/sbin/sendmail: Creates a link to sendmail for applications which need it. Exim will accept most Sendmail command-line options.

install -v -m750 -o exim -g exim /var/spool/exim: Since /var/spool is owned by root and this version of exim drops root privileges early, to run as user exim, it cannot create the /var/spool/exim directory. As a work around, it is created manually.

Adding Additional Functionality

To utilize some or all of the dependency packages, you'll need to modify Local/Makefile to include the appropriate directives and parameters to link additional libraries before you build Exim. Local/Makefile is heavily commented with instructions on how to do this. Listed below is additional information to help you link these dependency packages or add additional functionality.

If you wish to build and install the .info documentation, refer to https://exim.org/exim-html-4.97/doc/html/spec_html/ch04.html#SECTinsinfdoc.

If you wish to build in Exim's interfaces for calling virus and spam scanning software directly from access control lists, uncomment the WITH_CONTENT_SCAN=yes parameter and review the information found at https://exim.org/exim-html-4.97/doc/html/spec_html/ch45.html.

To use a backend database other than GDBM , see the instructions at https://exim.org/exim-html-4.97/doc/html/spec_html/ch04.html#SECTdb.

For SSL functionality, see the instructions at https://exim.org/exim-html-4.97/doc/html/spec_html/ch04.html#SECTinctlsssl and https://exim.org/exim-html-4.97/doc/html/spec_html/ch42.html.

For tcpwrappers functionality, see the instructions at https://exim.org/exim-html-4.97/doc/html/spec_html/ch04.html#SECID27.

For information about adding authentication mechanisms to the build, see chapters 33—41 of https://exim.org/exim-html-4.97/doc/html/spec_html/index.html.

For information about linking Linux-PAM, refer to the instructions https://exim.org/exim-html-4.97/doc/html/spec_html/ch11.html#SECTexpcond.

For information about linking database engine libraries used for Exim name lookups, see the instructions at https://exim.org/exim-html-4.97/doc/html/spec_html/ch09.html.

If you wish to add Readline support to Exim when invoked in test expansion (-be) mode, see the information in the -be section of https://exim.org/exim-html-4.97/doc/html/spec_html/ch05.html#id2525974.

You may wish to modify the default configuration and send log files to syslog instead of the default /var/spool/exim/log directory. See the information at https://exim.org/exim-html-4.97/doc/html/spec_html/ch-log_files.html.

A wealth of information can be also found at the Exim Wiki.

Exim の設定

設定ファイル

/etc/exim.conf and /etc/aliases

設定情報

Review the file /etc/exim.conf, and modify any settings to suit your needs. Note that the default configuration assumes that the /var/mail directory is world writable, but has the sticky bit set. If you want to use the default configuration, issue as the root user:

chmod -v a+wt /var/mail

A default (nothing but comments) /etc/aliases file is installed during the package installation if this file did not exist on your system. Create the necessary aliases and start the Exim daemon using the following commands:

cat >> /etc/aliases << "EOF"
postmaster: root
MAILER-DAEMON: root
EOF
/usr/sbin/exim -bd -q15m
[注記]

注記

To protect an existing /etc/aliases file, the command above appends these aliases to it. This file should be checked and duplicate aliases removed, if present.

The /usr/sbin/exim -bd -q15m command starts the Exim daemon with a 15 minute interval in processing the mail queue. Adjust this parameter to suit your desires.

Linux PAM Configuration

If you have built Exim with Linux PAM support, you need to create a PAM configuration file to get it working correctly with BLFS.

Issue the following command as the root user to create the configuration file for Linux PAM:

cat > /etc/pam.d/exim << "EOF"
# Begin /etc/pam.d/exim

auth    include system-auth
account include system-account
session include system-session

# End /etc/pam.d/exim
EOF

Systemd Unit

To automatically start exim at boot, install the exim.service unit included in the blfs-systemd-units-20231205 package:

make install-exim

パッケージ構成

インストールプログラム: exicyclog, exigrep, exim, exim-4.97-2, exim_checkaccess, exim_dbmbuild, exim_dumpdb, exim_fixdb, exim_lock, exim_tidydb, eximstats, exinext, exipick, exiqgrep, exiqsumm, exiwhat, 任意ビルドとして eximon, eximon.bin, and sendmail (シンボリックリンク)
インストールライブラリ: なし
インストールディレクトリ: /usr/share/doc/exim-4.97, /var/spool/exim

概略説明

exicyclog

Exim のログファイルを回します。

exigrep

searches Exim log files

exim

is a symlink to the exim-4.97-2 MTA daemon

exim-4.97-2

is the Exim mail transport agent daemon

exim_checkaccess

states whether a given recipient address from a given host is acceptable or not

exim_dbmbuild

creates and rebuilds Exim databases

exim_dumpdb

writes the contents of Exim databases to the standard output

exim_fixdb

modifies data in Exim databases

exim_lock

locks a mailbox file

exim_tidydb

removes old records from Exim databases

eximstats

generates mail statistics from Exim log files

exinext

queries remote host retry times

exipick

selects messages based on various criteria

exiqgrep

is a utility for selective queue listing

exiqsumm

produces a summary of the messages in the mail queue

exiwhat

queries running Exim processes

eximon

is a start-up shell script for eximon.bin used to set the required environment variables before running the program

eximon.bin

is a monitor program which displays current information in an X window, and also contains a menu interface to Exim's command line administration options