Knowledge File AEGEE Mail - sendmail


Sendmail is the MTA and MSA used in AEGEE. This document describes only the AEGEE-specific settings and considerations. It is in no way meant to be a guide explaining how sendmail works.

General details on configuring sendmail are availble from other sources. The documentation delivered with sendmail (doc/op/op.txt and doc/op/op.pdf) is good as reference for experienced administrators, but cannot be used to learn how sendmail works. A very, very good book on Sendmail is "sendmail" from O'Reilly, forth edition, authored by Bryan Costales, Claus Assmann, George Jansen, and Gregory Shapiro (ISBN 978-0-596-51029-9, 1308 pages).

Sendmail on aegeeserv listens to

Compiling sendmail

sendmail sources are located in /src/mail/sendmail-8.13.6 and /src/mail/sendmail-8.14.4 . In each sendmail source tree there is a devtools/Site/site.config.m4 file. This file says how sendmail will be build.

As of January 2010 the file contains:

define(`confOPTIMIZE', ` -O3 -march=native')
APPENDDEF(`confINCDIRS', `-I/usr/include/sasl -I/usr/include/openssl/')
APPENDDEF(`confLIBS', `-lssl -lcrypto -lsasl2 -lwrap -lpthread')
dnl -llber -lldap

dnl starts a comment until the end of the line and mentioned settings, that were enabled or might be interesting to enable in the future.

When compiling sendmail with ldap support, keep in mind that the static library libmilter.a does require -llber -lldap when being linked against executables. This is most notably the case when new version of clamav-milter is compiled. When libmilter.a is build to depend on LDAP pass CFLAGS=-llbrer -ldap when linking against the library (libmilter does uses ldap in no way, just if it depends on LDAP you have to pass the LDAP libraries, otherwise you cannot link).


Apply towards the sendmail 8.14.4 source tree to make it PRDR capable.

Apply towards the sendmail 8.14.4 source tree to make it capable to proceed listserv probes and as of listserv 16.0-2014a, dmarc-rewritten addresses.

Configuring sendmail

Each sendmail instance has a single, separate configuration file. In AEGEE there are seven differently configured sendmail instances. The configuration files for each instance are in /src/mail/sendmail-8.13.6/cf/cf/ and these are used to generate configuration files for sendmail 8.14.4.

The 8.13.6 is the only tree, that supports Real Time Cyrus Integration v2. In the bright future, the source tree of sendmail-8.14.4 will adopt the Open-sendmail / Real Time Cyrus Integration v3.

All relevant files in that directory start with sendmail or submit.

All sendmail instances are stared with /etc/init.d/rc.sendmail when the server starts, or when sendmail is manually restarted (=when sending signal HUP is not appropriate).

For each instance there is a .cf and .mc file. The .mc files are proceeded with ./Build install-cf in the /src/mail/sendmail-8.1?.?/cf/cf directory, to produce a .cf file. Afterwards both .cf and .mc files have to be copied to /etc/mail . The script /src/mail/sendmail-8.13.6/cf/cf/hajde regenerates all the relevant .cf filesfrom the .mc files, copies them to /etc/mail, and sends the HUP signal to sendmail. The latter practically means to force sendmail to reread its configiration files.


In AEGEE we use the milters: Below is described which sendmail instances use which milters.

The different .mc files

The differences between the different sendmail instances, described per configuration file, are:

All sendmail configurations send outgoing emails via the smart host (two different IPs).

Experimenting with sendmail


As non-run you can run sendmail on port 3306 that is not blocked by the University's computer center.

Written in February 2010 by Дилян Палаузов.