# Install exim with Homebrew, apk, dnf, MacPorts, Nix, pacman, zypper

Complete replacement for sendmail. Version 4.99.4 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:exim
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install exim
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install exim
```

  Evidence: MacPorts ports tree: mail/exim/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add exim
```

  Evidence: Alpine Linux edge package indexes: exim from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install exim
```

  Evidence: Fedora Rawhide package metadata: exim from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#exim
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ex/exim/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S exim
```

  Evidence: Arch Linux sync databases: exim from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install exim
```

  Evidence: openSUSE Tumbleweed package metadata: exim from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:exim
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/exim>
- **Version:** 4.99.4
- **Source summary:** Complete replacement for sendmail
- **Homepage:** <https://exim.org>
- **Repository:** <https://code.exim.org/exim/exim.git>
- **Upstream docs:** <https://www.exim.org/docs.html>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://ftp.exim.org/pub/exim/exim4/exim-4.99.4.tar.xz>
- **Last updated:** 2026-06-22T14:03:17-07:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- exicyclog (cli)
- exigrep (cli)
- exim (cli)
- exim-4.99.3-2 (cli)
- exim_checkaccess (cli)
- exim_ctl (cli)
- exim_dbmbuild (cli)
- exim_dumpdb (cli)
- exim_fixdb (cli)
- exim_id_update (cli)
- exim_lock (cli)
- exim_msgdate (cli)
- exim_tidydb (cli)
- eximstats (cli)
- exinext (cli)
- exipick (cli)
- exiqgrep (cli)
- exiqsumm (cli)
- exiwhat (cli)
- exicyclog (alias)
- exigrep (alias)
- exim (alias)
- exim-4.99.3-2 (alias)
- exim_checkaccess (alias)
- exim_ctl (alias)
- exim_dbmbuild (alias)
- exim_dumpdb (alias)
- exim_fixdb (alias)
- exim_id_update (alias)
- exim_lock (alias)
- exim_msgdate (alias)
- exim_tidydb (alias)
- eximstats (alias)
- exinext (alias)
- exipick (alias)
- exiqgrep (alias)
- exiqsumm (alias)
- exiwhat (alias)

## Dependencies

- openssl@3
- pcre2

## Uses from macOS

- libxcrypt
- perl
- sqlite

## Install behavior

- Post-install hook: not defined
- Caveats: Start with: exim_ctl start Don't forget to run it as root to be able to bind port 25.
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.99.4
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://exim.org
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Exim is a Unix-oriented mail transfer agent from the University of Cambridge, built for Internet-connected hosts and distributed under the GPL. It matters in package-manager culture because it is one of the long-lived sendmail replacements that administrators can install as a real MTA, a queueing mail system, and a command-line-compatible submission tool.

### Project history

The current Exim specification describes Exim as an MTA for Unix and Unix-like hosts, designed around permanently connected Internet systems but configurable for intermittent links. Its own introduction explicitly places it in the Smail 3 lineage: many ideas and user interfaces came from Smail, while the Exim codebase was new and later grew beyond that initial model.

Exim's documentation and distribution model are also part of its history. The project has long shipped a large reference specification, command-line man page, filter language documentation, upgrade notes, and per-release change logs. Source releases are published from exim.org, with signed tarballs and a separate public Git repository for people who want to track the source tree directly.

### Adoption history

An Exim 3.20 overview from 2000 already described production use at sites handling hundreds of thousands of messages per day. The current documentation points to mailing lists for announcements, user support, development, and automated VCS messages, plus independent mirror sites, which reflects the classic Unix server-project adoption pattern: distro packages, local site policy, mailing-list support, and careful upgrades.

Exim gained popularity as a sendmail-compatible replacement without requiring administrators to learn sendmail configuration. Its current manual says Exim adopts the Sendmail command-line interface so it can replace /usr/lib/sendmail or /usr/sbin/sendmail for message submission, while still producing Exim-specific output for administrative commands such as queue listings.

### How it is used

Exim is used to receive, queue, route, and deliver mail over SMTP and related transports. Administrators care about its runtime configuration file, router and transport model, ACLs, queue runner, logs, and privileged execution model because those determine how mail policy, local delivery, forwarding, relaying, and security boundaries behave on a server.

The package exposes a cluster of operational tools around the main exim binary, such as queue inspection, log grepping, database maintenance, and statistics commands. That shape is why it appears in package managers as a service-oriented package rather than a single-purpose CLI utility.

### Why package nerds care

For package maintainers, Exim is a security-sensitive daemon with signed upstream releases, build-time paths, runtime privilege rules, and distro-specific defaults. The official manual notes that the runtime configuration filename is compiled in through CONFIGURE_FILE, which explains why packaged Exim builds often differ in configuration paths and default integration details.

Exim is also historically interesting because major policy behavior changed over time. The official DNSBL HOWTO notes that Exim 4.00 moved incoming-mail policy checks to ACLs, making Exim 4 configuration materially different from Exim 3 for common anti-abuse setups.

### Timeline

- 2000: Exim 3.20 overview documented production use at high-volume sites.
- 4.00: Incoming mail policy checks moved to ACLs.
- 4.73: Runtime configuration file permission rules were tightened.
- 4.99.4: Current specification documents the modern Exim 4 series.

### Related projects

- Smail 3 is the direct design predecessor named by Exim's own documentation.
- Sendmail is the compatibility target for Exim's message-submission command-line interface.
- DNSBL services, TLS libraries, DBM libraries, and content scanners are common integration points documented around Exim deployments.

### Sources

- <https://www.exim.org/>
- <https://www.exim.org/exim-html-current/doc/html/spec_html/ch-introduction.html>
- <https://www.exim.org/download.html>
- <https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_runtime_configuration_file.html>
- <https://www.exim.org/howto/rbl.html>
- <https://www.exim.org/exim-html-3.20/doc/html/oview.html>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** exim
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - exim: normalized package name match | nixpkgs package indexes: pkgs/by-name/ex/exim/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - exim - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Message Transfer Agent | https://www.exim.org/
- apk - exim-cdb - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-cdb from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: cdb | https://www.exim.org/
- apk - exim-dbmdb - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-dbmdb from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: dbmdb | https://www.exim.org/
- apk - exim-dnsdb - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-dnsdb from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: dnsdb | https://www.exim.org/
- apk - exim-doc - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Message Transfer Agent (documentation) | https://www.exim.org/
- apk - exim-mysql - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-mysql from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: mysql | https://www.exim.org/
- apk - exim-openrc - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-openrc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Message Transfer Agent (OpenRC init scripts) | https://www.exim.org/
- apk - exim-postgresql - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-postgresql from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: pgsql | https://www.exim.org/
- apk - exim-scripts - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-scripts from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM scripts | https://www.exim.org/
- apk - exim-sqlite - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-sqlite from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM extension: sqlite | https://www.exim.org/
- apk - exim-utils - 4.99.4-r0: normalized package name match | Alpine Linux edge package indexes: exim-utils from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | EXIM utils | https://www.exim.org/
- dnf - exim - 4.99.4-1.fc45: normalized package name match | Fedora Rawhide package metadata: exim from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | The exim mail transfer agent | https://www.exim.org/
- dnf - exim-clamav - 4.99.4-1.fc45: normalized package name match | Fedora Rawhide package metadata: exim-clamav from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Clam Antivirus scanner dæmon configuration for use with Exim | https://www.exim.org/
- dnf - exim-greylist - 4.99.4-1.fc45: normalized package name match | Fedora Rawhide package metadata: exim-greylist from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Example configuration for greylisting using Exim | https://www.exim.org/
- dnf - exim-mon - 4.99.4-1.fc45: normalized package name match | Fedora Rawhide package metadata: exim-mon from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | X11 monitor application for Exim | https://www.exim.org/


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Productivity CLI packages](https://www.automicvault.com/pkg/productivity-cli-packages/) - Matched curated productivity category metadata from av.db.
- [openssl@3](https://www.automicvault.com/pkg/brew/openssl-3/) - Runtime dependency declared by Homebrew.
- [pcre2](https://www.automicvault.com/pkg/brew/pcre2/) - Runtime dependency declared by Homebrew.
- [dovecot](https://www.automicvault.com/pkg/brew/dovecot/) - Shares av.db curated category or tags: cli, email, mail, mail-server, networking.
- [sendemail](https://www.automicvault.com/pkg/brew/sendemail/) - Shares av.db curated category or tags: cli, email, networking, smtp.
- [haraka](https://www.automicvault.com/pkg/brew/haraka/) - Shares av.db curated category or tags: cli, email, mail-server, networking, smtp.
- [mailutils](https://www.automicvault.com/pkg/brew/mailutils/) - Shares av.db curated category or tags: cli, email, mail-server, networking.
- [mox](https://www.automicvault.com/pkg/brew/mox/) - Shares av.db curated category or tags: cli, mail-server, networking, smtp.
- [msmtp](https://www.automicvault.com/pkg/brew/msmtp/) - Shares av.db curated category or tags: cli, email, networking, smtp.
- [swaks](https://www.automicvault.com/pkg/brew/swaks/) - Shares av.db curated category or tags: cli, email, networking, smtp.
- [checkdmarc](https://www.automicvault.com/pkg/brew/checkdmarc/) - Shares av.db curated category or tags: cli, email, networking.

## Combined YAML source

View the package source record on GitHub. [combined/exim.yml](https://github.com/automic-vault/db/blob/main/combined/exim.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
