Welcome to the flail Home Page

Flail is a hacker's MUA (Mail User Agent, a program you use to read your mail). It has a terse, extensible, Unix-like command-line interface. It is written in Perl, and is designed to make Perl hackers happy. It now comes with a Makefile.PL and a README, so what more could you possibly ask?

Flail is still mainly programmerware. If you're a Perl hacker and like the idea of using a mailer that lets you map arbitrary snippets of Perl code over your messages and folders in a terse way, then you might want to check it out. I recently revived the project from the dead, after getting sick of my current mailer and deciding my own dogfood just had to be better.

I use flail to read all my mail, from multiple mailboxes, faced with hundreds or even thousands of spams a day, using GnuPG and EMACS as my trusty helper apps. I also highly recommend fetchmail, maildrop, and bmf. My .flailrc and associated helper modules are included, and are probably the best source of examples, along with the page on spam mitigation hacks in flail.

My original idea for flail was to write a variable-weight MUA. By variable-weight, I mean a mailer that you could use from a command-line interface (lightweight), a full-blown GUI (heavyweight), or even by accessing a detached flail process via HTTP or IRC on the fly (sort of medium-weight). I have used mail systems in the past that had this kind of capability, but they are now outdated, were always much too large for what they did, and still didn't do everything I wanted.

There is a modicum of documentation in flail itself, via the help command, including a brand-spanking new POD, also known as the man page. To get at all this goodness yourself, unpack the tarball, read the README, and follow the instructions.

If you like this or want to help me work on it, please let me know. I have a lot of plans for this, but have to work on other things now. Send email to flail@cluefactory.org with comments or, better, code. The flail-dev@cluefactory.com mailing list also awaits you; send email to flail-dev-subscribe@cluefactory.com to subscribe.

The latest release is 0.2.5. You can read the manual to get a better idea of how flail works. You might also find some of the CPAN modules cached in my bits directory of use. However, I would suggest trying to satisfy the dependences that Makefile.PL complains about using whatever means are normal on your system first. For instance, under OpenBSD you would look in /usr/ports for the missing Perl modules first.

Release Description


Recovered "lost" changes from a source tree on a dead laptop: multiple commands separated by semi-colons on the same line, reorganized SMTP code into send_via_program and send_via_smtp so that we can use e.g. msmtp to hack up outbound email via Gmail easily, updated example code in eg/ subdir a bit. Nothing major, but slightly comfier to use.


Fixed bug in ls output for messages with goofy whitespace in headers (e.g. tons of spam), fixed some hard-coded constants (e.g. path to gpg), added SMTP AUTH fu, added the pipe command, added /debug, /verbose and /quiet options to many commands (including send_internal), fixed help brief command, made flail_defcmd1 overwrite existing aliases by default so we can reconf sanely, updated the POD, wrote a working Makefile.PL for flail version 0.x and renamed the flail version 1.x makefile to something else for now, updated examples in eg/.


Many bug fixes and improvements, especially to the documentation. Added several examples from my config, including a module that supports multiple identities, and another that automatically files your mail according to regular expressions.


Many bug fixes and improved documentation. Includes support for local spools, but w/no locking!


Fix a bad bug in get_imap() that would totally pooch messages from IMAP spools on the way into your incoming folder.


First 0.2.x release. IMAP support, albeit buggy.


This has a couple bugfixes over 0.1.27, and is what I use now to read all of my mail. I wish I had more time to clean this up.

I have announced this version on freshmeat.net in the hopes that someone else might be interested in helping out with flail development, since I have such little time. Here is a screen shot. Woo hoo! Aterm! I'm a dork!


Fixed the reply From address bug. Fixed the orphaned gpg child process bug. Fixed some POP issues. Aborted attempt to add Maildir support because I need to rework a few things. Damn. Otherwise, reasonably solid.


Skipped a bunch of releases. Oh, well. 0.1.22 is a pretty solid mail reader, and it has a primitive installer now. This tarball contains all of the modules and collateral libraries needed to install flail. It has been tested under Linux and OpenBSD. Please let me know if you get it to work anywhere else.


Skipped a release... 0.1.12 has some portability fixes and just general bug fixes. This is the release I have been using to read and send all of my mail for months now.


Added old-sk00l /opt[:val] style command line argument parsing, i.e. send/as:me@somewhere you


First semi-public release.



Required Modules

As of version 0.1.12, the following CPAN modules are required to get flail to work:

  • ANSIColor

  • File-Sync

  • libnet

  • MailTools

  • TimeDate

  • Time-modules

  • MIME-Base64

  • IO-stringy

  • MIME-tools

  • MailFolder (my version has a slight patch that isn't on CPAN)

  • POP3Client

  • Mail-IMAPClient

  • Proc-Simple

  • Links  

    A few links to some related content of mine:

  • freshmeat project page for flail. releases are announced here.

  • the clue factory, our home sweet home on the web.

  • redyucatan.com web design and hosting for rural mexico (for the non-spanish-enabled, "red" means "network").

  • uncacheable.blogspot.com my blog, mainly centered around topics of interest to hackers

  • www.stalphonsos.com/~attila my ancient web pages, from the old days of the empire.

  • ... and let's not forget the obligatory URLs of Power And Majesty!!!


  • qmail, the open-source mail server for discerning peoples

  • flail would not exist without perl, which both inspired and hindered its birth