Matthias Schmidt

Philipps University Marburg
Department of Mathematics and Computer Science

University logo

mfetch POP3 client

Overview

mfetch is a Post Office Protocol version 3 (POP3) client.

It is able to fetch emails from multiple remote POP3 server and store them to different mbox compatible mailboxes. mfetch is multi-user capable and doesn't need any SUID/SGID bits. Every user has it's own config-file.

mfetch does not depend on an SMTP server (postfix, qmail, exim, ...) like fetchmail does. The code size is very small, so you can use it for embedded systems. mfetch is RFC 1939 compatible and uses no further libraries.

General features

  • Small code size (static linked binary (against diet libc) is only 25K small)
  • Native IPv6 support.
  • Tunneling via SSL with stunnel possible.
  • Multiuser capability (via per-user-configfile).
  • Experimental APOP support.

Features for embedded systems

Have a look at the binary sizes of mfetch. All binaries are stripped and linked dynamic and static against glibc, diet libc and uClibc:

  • 11k - mfetch.glibc.dyn*
  • 409k - mfetch.glibc.static*
  • 25k - mfetch.diet.static*
  • 11k - mfetch.uclibc.dyn*
  • 46k - mfetch.uclibc.static*

Changelog

    Sun Sep 28 2003 - 0.2.3 (stable)

  • Now mfetch won't exit, if it cannot open an inbox file. It will proceed with the next configuration (if there's any).
  • Add the HAVE_EMB define to get rid of some ?printf calls to reduce the binary size about 2k. Enable if you have an embedded system.
  • Check the return values of pop3_stat() and pop3_size() more carefully.
  • Fix a bug relating IPv6 global addresses.
  • mfetch no longer segfaults if the NAME field of a config file entry is missing.
  • Parse the recive value from the socket more carefully.
  • Merge the two in 0.2.2 splitted files back into one.

Download

  • Stable tarball: mfetch-0.2.3.tar.gz
  • Latest nightly development tarball here
  • Latest development version via AnonCVS:

    $ export CVSROOT=anoncvs@ralf.homelinux.org:/cvs
    type anoncvs if you are asked for a password
    $ cvs checkout OpenSource/mfetch
    [...]
    $ cd OpenSource/mfetch && cat INSTALL

Requirements

  • At least an UNIX with a proper TCP stack (possibly an IPv6 stack).
  • A C compiler (gcc preferred).
  • A MUA (mutt, pine) would be helpfull.
  • Luck :)

Links


Copyleft (l) 2002-05 by Matthias Schmidt.