Exim is a mail transfer agent for Unix systems connected to the Internet.
It is a monolithic MTA designed to be a command line compatible drop-in
replacement for Sendmail.
Exim is an excellent mailer for an ISP, as its control and flexibility
are very good and its requeueing and retry algorithms are very powerful.
Exim's configuration syntax is well documented.
===> The following configuration options are available for exim-4.100.1:
ALT_CONFIG_PREFIX=off: Restrict the set of configuration files
CONTENT_SCAN=on: Enable exiscan email content scanner
DAEMON=on: Install scripts to run as a daemon
DANE=off: Enable experimental DANE support
DEBUG=off: Build with debugging support
DISABLE_D_OPT=on: Disable macros overrides using option -D
DKIM=on: Enable support for DKIM
DNSSEC=on: Enable DNSSEC validation
DOCS=on: Build and/or install documentation
EMBEDDED_PERL=on: Enable embedded Perl interpreter
EVENT=on: Messages events support (TPDA namely)
EXIMON=off: Build eximon monitor (requires X libraries)
ICONV=on: Enable header charset conversion
INTERNATIONAL=on: Enable support for the transmission of UTF-8 envelope addresses
IPV6=on: IPv6 protocol support
LISTMATCH_RHS=off: Enable pre-4.77 behaviour for match_*
LMTP=on: RFC2033 SMTP over command pipe transport
OCSP=on: Enable OCSP stapling
PRDR=on: Enable Per-Recipient-Data-Response support
PROXY=off: Enable Experimental Proxy Protocol
READLINE=off: Enable readline(3) library
SOCKS=off: Enable smtp transport via socks5 proxies
SPF=on: Enable Sender Policy Framework checking
SUID=on: Install the exim binary suid root
WISHLIST=off: Include the unsupported patches
====> SMTP Authorization
AUTH_CRAM_MD5=on: Enable CRAM-MD5 authentication mechanisms
AUTH_DOVECOT=on: Enable Dovecot authentication mechanisms
AUTH_PLAINTEXT=on: Enable plaintext authentication
AUTH_RADIUS=off: Enable radius (RFC 2865) authentication
AUTH_SASL=off: Enable use of Cyrus SASL auth library
AUTH_SPA=on: Enable Secure Password Authentication
AUTH_TLS=off: Enable TLS client certificate authentication
SASLAUTHD=off: Enable use of Cyrus SASL auth daemon
PAM=on: Enable PAM authentication mechanisms
PASSWD=on: Enable /etc/passwd lookups
====> Lookup support
CDB=on: Enable CDB-style lookups
BDB=off: Enable Berkeley DB lookups
DNSDB=on: Enable DNS-style lookups
DSEARCH=on: Enable directory-list lookups
LSEARCH=on: Enable wildcarded-file lookups
MYSQL=off: Enable mysql lookups
NIS=off: Enable NIS-style lookups
OPENLDAP=off: Enable LDAP lookups
PGSQL=off: Enable postgresql lookups
REDIS=off: Enable redis lookups
SQLITE=off: Enable SQLite lookups
====> Supported storage formats
MAILDIR=on: Enable Maildir mailbox format
MAILSTORE=on: Enable Mailstore mailbox format
MBX=on: Enable MBX mailbox format
====> Experimental options
CERTNAMES=off: Check certiticates ownership
DCC=off: Enable DCC at ACL support via dccifd
DMARC=on: Enable DMARC support
DSN=off: Enable Delivery Status Notifications
ARC=off: Enable experimental ARC support
LMDB=off: Enable LMDB lookups
QUEUEFILE=off: Enable queuefile transport
====> TLS support: you can only select none or one of them
TLS=on: TLS support
GNUTLS=off: Use GnuTLS instead of OpenSSL for TLS
====> Local scan patch: you can only select none or one of them
SA_EXIM=off: Build with Spamassassin local scan (BROKEN)
====> Sender Rewriting Scheme: you can only select none or one of them
SRS=off: Enable Sender Rewriting Scheme
OLD_SRS=off: Enable Alternative Sender Rewriting Scheme
===> Use 'make config' to modify these settings
Reason:
The port changes from USE_DB to USE_NDBM. Any existing configuration like
${lookup{$needle}dbm{haystack.db}}
will need to change to
${lookup{$needle}dbm{haystack}}.
Please also rename your old DBM files while the exim daemon is stopped:
find /var/spool/exim/db/* -not -name \*.lockfile -exec mv -i {} {}.db \;
Number of commits found: 435 (showing only 100 on this page) #
mail/exim: daemon fails to create notifier socket on start if no correct exit
(+)
Since recent version (e.g. 4.98) exim successfully creates notifier socket file
in FreeBSD.
But if file already exists during exim start it's just ignored with error
message in log.
Without notifier socket exim cannot check if there is already running exim
daemon
with e.g. such condition: ${if eq {$queue_size} {} }.
Add socket file removing before daemon start.
exim_notifier_socket variable is added for notifier_socket setting overriding in
exim configuration.
PR: 281615
Notified by: vvd
databases/lmdb0: Add port for LMDB 0.9.x legacy ABI
LMDB 1.0 introduced an incompatible on-disk format change and subtle
API breakage: applications that compiled cleanly against 1.0 headers
could fail silently at run time. Known affected ports include dns/knot3,
mail/bogofilter, and mail/postfix; the postfix issue has been confirmed
upstream. Linux distributions such as Arch Linux have observed the same
breakage. Samba can also be affected in certain configurations.
Because the regression is not detectable in an -exp build run -- the
postfix failure only manifests at run time, and bogofilter was caught
only because post-build self-tests happen to exercise this path -- we
cannot rely on package builds to validate the 1.0 upgrade.
This commit introduces databases/lmdb0 as a holding port for the 0.9.35
(Only the first 15 lines of the commit message are shown above )
mail/exim*: update to 4.98.2 release (+)
This is a security release, addressing CVE-2025-30232
JH/01 Fix use-after-free notified by Trend Micro (ref: ZDI-CAN-26250).
Null out debug_pretrigger_buf pointer before freeing the buffer;
the use of this buffer by the storage management checks the pointer
for non-null before using it.
Security: CVE-2025-30232
mail/exim: update 4.96.2 -> 4.97
Notable changes:
- The internal (but exposed in logs, Received: headers and Message-ID: headers)
identifier used for messages is longer than in the previous release
PR: 274909
Changes: https://lists.exim.org/lurker/message/20231104.135832.37148bbd.en.html
Reported-by: doctor@doctor.nl2k.ab.ca
Approved-by: fluffy (maintainer)
Reviewed-by: Igor Zabelin <igorz@yandex.ru>
mail/exim: Unmark BROKEN for openssl30
New version 4.96 comes with support for OpenSSL 3.0.X which has been
tested however support with 3.1.X has not yet been tested.
It maybe the case that while I was marking ports BROKEN the MAINTAINER
was updating the port and missed this snippet causing a mid air
collission.
PR: 265098
Tested by: i.dani@outlook.com
mail/exim: Mark BROKEN_SSL
- Fails to build with error: token is not a valid binary operator in a
preprocessor subexpression
- There is an upstream release more recent than the one in the tree
which supports OpenSSL 3.0.0
Approved by: portmgr (blanket)
mail/exim: actually fix the bug in code (+)
The comment prior to smtp_printf() implementation says that the
extra BOOL argument tells whether "further is data expected".
Looking at other invocations of it, including those
for error 451, it should be FALSE here.
mail/exim: unbreak build with LLVM15 (+)
Pass -Wno-int-conversion to CFLAGS fixes error with strict conversion rules
introduced in LLVM15
error: incompatible pointer to integer conversion passing 'char *' to parameter
of type 'BOOL' (aka 'unsigned int') [-Wint-conversion]
Mk/**ldap.mk: Convert USE_LDAP to USES=ldap
Convert the USE_LDAP=yes to USES=ldap and adds the following features:
- Adds the argument USES=ldap:server to add openldap2{4|5|6}-server as
RUN_DEPENDS
- Adds the argument USES=ldap<version> and replaces WANT_OPENLDAP_VER
- Adds OPENLDAP versions in bsd.default-versions.mk
- Adds USE_OPENLDAP/WANT_OPENLDAP_VER in Mk/bsd.sanity.mk
- Changes consumers to use the features
Reviewed by: delphij
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D38233
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
mail: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* <ashish@FreeBSD.org>
* Aaron Dalton <aaron@FreeBSD.org>
* Adam David <adam@FreeBSD.org>
* Adam McDougall <mcdouga9@egr.msu.edu>
* Adam Weinberger <adamw@FreeBSD.org>
* Ade Lovett <ade@FreeBSD.org>
* Akinori MUSHA aka knu <knu@idaemons.org>
* Alex Deiter <tiamat@komi.mts.ru>
* Alex Dupre <ale@FreeBSD.org>
* Alex Dupre <sysadmin@alexdupre.com>
* Alex Perel <veers@disturbed.net>
(Only the first 15 lines of the commit message are shown above )
mail/exim: port TLS patches from upstream (+)
This fixes hang in TLS transport after 4xx or 5xx bug
(see https://bugs.exim.org/show_bug.cgi?id=2864)
PR: 262594
Tested by: Kurt Jaeger, David Siebörger
mail/exim: switch to native SRS implementation (+)
Years before Exim used alternative SRS library.
Since 4.95 release, SRS functions was implemented as native code,
switch build process tu use it insteasd of outdated alternative
PR: 260789
Tested by: Martin Waschbüsch
Sponsored by: Netzkommune GmbH
mail/exim: update to 4.95 release (+)
Finally, Exim will be pushed to 4.95 release.
Long wait was caused by some criticals errors in vanilla release,
upstream fixes got a some time to come.
* Apply sendfile patch, fixes SIGSEGV using clamd via TCP [1]
* Convert select() to poll(), fixes crashes (SIGSEV) on FreeBSD 12.2 [2]
PR: 258848 [1], 259822 [2]
Sponsored by: Netzkommune GmbH
mail/exim: unbreak after mail/opendmarc update (+)
Last update for mail/opendmarc to 1.4.2 changes required params for
opendmarc_policy_store_dkim subroutine by introducing *dkim_selector
as pair for *domain.
Adjust exim' dmarc routines by pass NULL string as *dkim_selector to
force opendmarc subroutine go thru autodetect required selector on the fly.
This dirt'n'ugly hack will be dropped as soon as functionality will be
adjusted upstream in proper way.
Bump PORTREVISION to force rebuild.
Reported by: ler, poudriere failure
PR: 260678
mail/exim: update to 4.94.2 security release
* New upstream security release.
+ Release based on +fixes branch.
+ Fixes multiple security vulnerabilities reported by Qualys and adds
related robustness improvements. (Special thanks to Heiko)
CVE-2020-28023: Out-of-bounds read in smtp_setup_msg()
CVE-2020-28007: Link attack in Exim's log directory
CVE-2020-28016: Heap out-of-bounds write in parse_fix_phrase()
CVE-2020-28012: Missing close-on-exec flag for privileged pipe
CVE-2020-28024: Heap buffer underflow in smtp_ungetc()
CVE-2020-28009: Integer overflow in get_stdinput()
CVE-2020-28015, CVE-28021: New-line injection into spool header file
CVE-2020-28026: Line truncation and injection in spool_read_header()
CVE-2020-28022: Heap out-of-bounds read and write in extract_option()
CVE-2020-28017: Integer overflow in receive_add_recipient()
CVE-2020-28013: Heap buffer overflow in parse_fix_phrase()
CVE-2020-28011: Heap buffer overflow in queue_run()
CVE-2020-28010: Heap out-of-bounds write in main()
CVE-2020-28018: Use-after-free in tls-openssl.c
CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()
CVE-2020-28014, CVE-2021-27216: PID file handling
CVE-2020-28008: Assorted attacks in Exim's spool directory
CVE-2020-28019: Failure to reset function pointer after BDAT error
* Incorporate debian patches to turn taint failures into warnings.
mail/exim: import exim-4.94+fixes branch as state of 2020.11.25
Used git diffs:
[38/42] GnuTLS: clear errno before any data i/o op, so error logging does not
see stale values
[39/42] Fix non-TLS build
[40/42] eximon: fix FreeBSD build
[41/42] LDAP: fix taint-check in server list walk. Bug 2646
[42/42] Pass authenticator pubname through spool. Bug 2648
Also patch files/150.exim-tidydb to prevent its output when
daily_show_success=NO. [1]
Submitted by: Dmitry Selivanov <sd@rlan.ru> via email [1]
MFH: 2020Q3
mail/exim: import exim-4.94+fixes branch as state of 2020.09.09
Used git diffs:
[27/37] Fix spelling of local_part_data in docs and debug output
[27/37] Fix spelling of local_part_data in docs and debug output
[28/37] Fix ${readsocket } eol-replacement. Bug 2630
[29/37] Taint: fix off-by-one in is_tainted(). Bug 2634
[30/37] Build: ifdef guard for EXPERIMENTAL_QUEUEFILE
[31/37] Taint: fix off-by-one in is_tainted(). Bug 2634
[32/37] DANE: force SNI to use $domain. Bug 2265
[33/37] DANE: Fix 2-rcpt message, diff domins case. Bug 2265
[34/37] Fix non-DANE build
[35/37] DANE: Fix 2 messages from queue case
[36/37] Fix non-DANE build
While here, make SPF option turned on by default
MFH: 2020Q3
mail/exim: attempt to fix *taint* and auth issues
Bump PORTREVISION for master port to force all slaves rebuild
Drop PORTREVISION for exim-postgresql slave in favor of master settings
Adopt recent commits from Exim repo as numerated extra-patches till new
maintenance release will be published:
19. SPF: fix result for case of only non-spf TXT RRs
20. Fix error logging for dynamically-loaded modules
21. heimdal auth: fix the increase of big_buffer size
22. Taint: hybrid checking mode
23. Fix taint hybrid-checking on BSD
24. TFO: even in binary built for modern Linux, handle error returned by old
Linux kernel
25. Taint: slow-mode checking only
26. Auths: fix cyrus-sasl driver for gssapi use
27. GnuTLS: fix hanging callout connections
mail/exim: unbreak with AUTH_RADIUS
- bump PORTREVISION for radius users only
- allow to build with net/freeradius-client instead of abandonware
net/radiusclient-ng
- Do not invoke printf-like function without parameter in call_radius.c
With exim 4.93, string_sprintf() requires at least two arguments
- take maintainership, discussed with vsevolod@ via private mail
PR: 244287, 244299
Reported by: pi, Victor Sudakov
Approved by: maintainer
mail/exim: update sa-exim plugin to 4.2.1
Unbreak build for exim-sa-exim slave port (${FILESDIR} misusage)
Incorporate some patches from Debian:
1) api-limitations.patch:
Exim now exports only the symbols that are part of the official API
2) remove-header-crs.patch:
Delete carriage returns from header lines.
When spamd gets a message with CRLF line endings, which it will when the spool
file is in wire format, it will return a message with CRLF line endings,
including the header. We will need to strip out the CRs.
3)spamc-args.patch:
Changes related to the arguments sent to spamc, namely that we don't pass -d
(SAspamcHost), -p (SAspamcPort), or -U (SAspamcSockPath) if those options aren't
set, as well as the new parameter -u (SAspamcUser).
4)sprintf_no_format_string.diff:
Do not invoke printf-like function without parameter.
With exim 4.93, string_sprintf() requires at least two arguments
PR: 244223
Submitted by: fluffy
Approved by: maintainer, implicit
- Fix build for SA_EXIM option
PR: 242518
Reported by: VVD <vvd at unislabs.com>
> Description of fields to fill in above: 76 columns --|
> PR: If and which Problem Report is related.
> Submitted by: If someone else sent in the change.
> Reported by: If someone else reported the issue.
> Reviewed by: If someone else reviewed your modification.
> Approved by: If you needed approval for this commit.
> Obtained from: If the change is from a third party.
> MFC after: N [day[s]|week[s]|month[s]]. Request a reminder
email.
> MFH: Ports tree branch name. Request approval for merge.
> Relnotes: Set to 'yes' for mention in release notes.
> Security: Vulnerability reference (one per line) or
description.
> Sponsored by: If the change was sponsored by an organization.
> Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL
needed).
> Empty fields above will be automatically removed.
M exim/Makefile
AM exim/files/extra-patch-Local-sa-exim.c
Add USES=xorg USES=gl, ports categories l and m
Add USES=xorg and USES=gl to ports in categories starting with 'l' and 'm'.
While here, try to sprinkle other USES (mostly gnome and sdl) as needed.
mail/exim: Fix build (linker) flags
"-export-dynamic" in EXIM_DYNAMIC_LDFLAGS is a linker option, currently
producing a warning during build:
/usr/bin/ld: warning: cannot find entry symbol xport-dynamic; defaulting to
00000000004019c0
The only reason that plugin modules work is that the option is redundant
with -rdynamic.
This change makes the minimum necessary change not relying on linker
argument compatibility (- vs --).
PR: 236426
Submitted by: <andrew tao11 riddles org uk>
Approved by: portmgr (maintainer timeout: ~6 weeks, "just fix it")
MFH: 2019Q2
mail/exim: Rename LMDB_LIBS to _LMDB_LIBS
It otherwise looks like an options helper that appears after
bsd.port.options.mk which will be flagged as a DEV_ERROR after
D19553. Rename LMDB_INCLUDES too for consistency.
Install texinfo files (GNU info) into ${PREFIX}/share/info
After a discussion on the mailing list on moving manpages to
${PREFIX}/share/man for consistency with base where it is
installed in usr/share/man, it appeared the same should happen
to GNU info files which were installed under share in base and
not in ports.
Now texinfo is not in base on any of the supported version of FreeBSD
it is possible to proceed to this move and it is easier to do than
the manpage change.
Other benefit than consistency are less patching: all build tools but
cmake are expecting info files to be under share/info and cmake (patched here)
was having an exception for BSD so the patch makes FreeBSD case less
specific for them
Bump revision of all impacted ports
PR: 232907
exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D17816
Conditionalize EXIM_WARN_FLAGS on clang to fix build on gcc-based
archs such as powerpc64.
Tested for no change on amd64.
Approved by: portmgr (tier-2 blanket)
Various fixes for the Exim port
- Fix build with no OSCP support (ported from upstream) [1]
- Fix Dane support [2]
- Silence compile warnings caused by Exim code style
Reported by: ler [1], Max Kostikov [2] via private email
- Fix RCE vulnerability:
The receive_msg function in receive.c in the SMTP daemon in Exim 4.88 and 4.89
allows remote attackers to execute arbitrary code or cause a denial of service
(use-after-free) via vectors involving BDAT commands.
PR: 223870
Submitted by: Gary
MFH: 2017Q4
Security: CVE-2017-16943
- Update to version 4.88
- Add experimental LMDB lookup option
- Add experimental queuefile option
- Remove rspamd pacth which is now included in Exim
Changes: ftp://ftp.exim.org/pub/exim/exim4/NewStuff
Remove USE_SQLITE from bsd.databases.mk, replaced by USES=sqlite.
While there replace USE_SQLITE=x by USES=sqlite:x.
PR: 208971
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5951