Donate

You can make a donation if you'd like to support my work:


Contact

I deactivated the rating mechanism for now due to excessive spamming; while I got some interesting comments when I started it the current ratio is several hundred spam comments for one useful comment. If you have anything to say, please write an email to bwachter-hp@lart.info

aardmail

News

[20051104]
I've been using the combination of aardmail-pop3c, aardmail-smtpc and aardmail-sendmail to handle all my mail for several month, without major problems. After some cleanups and build fixes vor various architectures (for example, build works now with Borland C) I decided it's time to release a first stable version. You can read the documentation on this page or directly jump to the download section

General

aardmail is a package with useful tools for different kinds of mail handling. All programs can be linked against dietlibc and should be working under UNIX and Windows. aardmail is known to compile and work under Linux, *BSD, IRIX, Solaris (gcc and Sun Studio), MacOS X and Windows (MingW and Borland C). Under Windows it requires -- as far as I know it is available since Windows 98.

All transports over network can (and should) be TLS-encrypted, currently using either OpenSSL or GnuTLS. Per default aardmail will abort if it can't verify a peers certificate, and won't do fallbacks to unencrypted transport unless you tell it explicitly to do so.

There's a mailinglist, to subscribe send an email to aardmail-subscribe@lart.info

The tools

The programs can be separated into backends and frontends. While backends all share the same command line parameters frontends can have completely different parameters, use additional configuration files, act as a frontend to many different backends, and simulate some well known program (for example, a minimalistic sendmail-wrapper is included in CVS, a fetchmail-frontend is on the way)

Frontends

aardmail-sendmail
aardmail-sendmail tries to be a /usr/lib/sendmail-compatible wrapper to the send-stuff of aardmail. Currently it merely ignores most parameters and does not rewrite addresses, but honours the -t option and successfully spools mail into ~/Maildir/.spool/

Backends

aardmail-miniclient
aardmail-miniclient is a small minimalistic client to help finding problems on getting/sending mail. It can be used to connect and talk to any text-based tcp-service. It can do an initial SSL-handshake, or initiate a SSL connection after the user typed STLS or STARTTLS.
aardmail-pop3c
aardmail-pop3c is a simple client to retrieve mail via pop3. If compiled with SSL-support it's possible to use TLS-encrypted connections, with or without starttls. It can either deliver into a Maildir (default) or to an external program using a pipe (like procmail). It should be able to replace fetchmail if you just want to get mails from a pop3-server.
aardmail-smtpc
aardmail-smtpc can send mail from a spool formed as a Maildir to a mail relay. The only way to authentificate you to the relay is currently using SSL certificates

Building

At least on UNIX 'make dep' followed by 'make' should work. You can control the build using some environment variables, usually by setting them to 1 or 0:

SSL
compile with SSL-support. Should work with any SSL-library using the OpenSSL-AI
DEBUG
Add debug information to the binaries, don't strip.
WIN32
Build for windows. Adds .exe to the binaries and links to libws2_32, libwsock32 and libgdi32
CROSS
Cross-compile by prefixing the toolchain with CROSS (see examples below)
DIET
Set to the diet-wrapper if you want to do a dietlibc build

You need libaard for compiling. It's included in release tarballs, to compile CVS versions you can put a downloaded version inside the build directory or one level above (i.e. aardmail/ibaard or aardmail/../ibaard). If 'make dep' finds libaard in one of those locations it will include it in the build. If not you will have to make sure that libaard (library and includes) are in the systems include / library paths.

Examples

Doing a CROSS-build for Windows using MinGW
# make CROSS=i386-pc-mingw32- WIN32=1

Building with SSL
# make SSL=1

Build with dietlibc
# make DIET=/opt/diet/bin/diet

Please note that `works on windows' does not necessarily means `builds on windows'. While I test releases on Windows using Borland C CVS snapshots are only guaranteed to work in GNU environments -- I'm usually doing my Windows-builds, including dailys, on Solaris/SPARC using a MinGW crosscompiler.

FAQ

How does that .authinfo-file look like?
I'm using the extended syntax used by gnus, explained in the Gnus manual. You need to specify enough parameters at the command line to identify an .authinfo-record. The first matching record is taken. For example, if there's a record for lart.info with user foo, and in the next line a record for lart.info with user bar the foo-record will be used when just giving the hostname parameter. You must usually always specify at least the hostname, even if there's only one record in .authinfo. aardmail does not care whether the `port' token contains a numeric value or a servicename. However, I don't know if other software can handle non-numeric input -- if you're using other software accessing .authinfo you should maybe use numeric portnumbers.
How can I include a certificate in the certificate verification process?
You can add all certificates needed to verify a peers certificate to $HOME/.aardmail/cacerts.pem. The file needs to be in PEM format; you can add text describing the certificates between the individual certificate blocks
How can I use it under windows?
Set the environment variable HOME, pointing to your home directory (ideally, to the subdirectory in your home containing your data). Create a directory named Maildir with subdirectories cur, new and tmp if you want to use Maildir delivery in the directory you used when setting HOME. Create a file named .authinfo in HOME.

Download

aardmail-0.1.1
aardmail-0.1
aardmail-cvs-current.tar.gz | aardmail-cvs-current.tar.bz2
Source archive containing a CVS-snapshot (usually created at about 05:00 CET). It's safe to work with the CVS-version since experimental features will only get enabled if you compile with -DDEV, but bugfixes and safe new features will be available long time before the next release comes out.
aardmail-cvs-current.zip
Archive containing Windows binaries, linked against OpenSSL. Build using the latest snapshot every night. Should be working on any Windows with Winsock 2 (>Win98, Win95 with seperately installed sockets).
anonymous CVS (-d:pserver:cvs@cvs.pimp.lart.info:/cvs co aardmail)
The sources can be accessed via anonymous CVS using pserver at cvs.pimp.lart.info in module aardmail