A console-based tool for handling MTA queues

News What Plans Why How Who Status Todo Requirements Download



A looong time without news. Actually in all this period pfqueue hasn't stopped working, just I thought it didn't deserve much attention anymore. Since I had a couple of requests, though, I decided that it deservers some love instead: so I revamped it, doing some cleanup in the code, and trying to refactor the TCP protocol to make it something really usable.

Version 0.6.0 is near to come.


OMG. I've updated everything but this page for the 0.5.6 version I've released on Feb 13. Dumb me.

Anyway, this release is much about socket backend: now you can really use pfqueue remotely to manage your MTA queues.

Have a good time...


...and according to the "released too often" rule, here is which fixes a stupid typo preventing pfqueue running on postfix 2. EEEeeeeekkkk....


According to the "release often" rule, here is 0.5.5. It adds 'corrupt' queue support in postfix, and the ability of sorting messages by from, to or subject. That's all folks...


A stupid bug has been found in 0.5.3 (affecting also 0.5.2 at least), which made pfqueue crash randomly, so here is version 0.5.4. Nothing else added, although I have a nice wishlist. I'll work on it to develop a new version as soon as possible.

This closes debian bugs #401829 and #353743.

Thanks to Vincent van Scherpenseel and Ralf Hildebrandt for testing.

I've switched from cvs to svn. It's... let's say more comfortable to me. So if anyone ever accesses SF pfqueue cvs repo, be aware that it stops at version 0.5.4. Further development will be under svn.

Use to browse the code, standard svn commands to checkout.


A looong time since last release, I hope this won't happen anymore. Now it's time for version 0.5.3, and this introduces some nice news:

Enjoy it, and feel free to rant your comments ;)


Bugfix release. 0.5.2 changelog is:

Thanks to Daniel Baumann, pfqueue is entering Debian, so Debian addicted may want to wait a little while instead of downloading source...


This took quite a long time, mainly because of lack of time. Anyway 0.5.1 is out and tries to address a segfault seen on some installations, when quitting pfqueue.

Here are all the changes:

Most of work has been done on the sockets: try this on the mail server:


and, from another client on the net:

pfqueue -b socket -r mailserver_ipaddr

This should say enough.

NOTE!: this is quite experimental yet, so you WILL face strange things and pfqueue of spfqueue crashed. I'm working on it...


It took quite a while, but version 0.5.0 is out. This version is an 'internal' split into three distinct components: backends, interface library and frontends. While this may sound useless to many, it's a key feature to allow what I was planning to do: create several frontends able to connect to many MTA, not even necessarly on the same machine.

In fact, for the next release I will focus on creating a) a KDE frontend as alternative to ncurses and b) a TCP infrastructure that will allow a frontend to connect to a remote machine.

Along these 'plans', here is the changelog:

I hope I've not created too many bugs... but if so, please notify me.


Version 0.4.2, focusing on responsiveness and portability fixes: many optimizations to the ncurses gui result in a much more responsive application (faster cursors movements), plus fixes that allow the thing being built on Solaris and *BSD. Full Changelog:


Version 0.4.1, mainly a bugfix release:

Thanks go to everyone who gave me feedback, such as Pav, Tacho, debsilver, Andre and others.


OK, it's time for 0.4.0. This release is a complete rework of pfqueue, because now it is MTA independent, and it can be used virtually with any MTA.

In my initial intentions, pfqueue was born to handle Postfix queues (hence the name pfqueue); once it reached more or less full functionality, the obvious question in my mind was "Why not make it work with other MTA too?". The (partial) answer is this version, which adds support for exim.

Here is how it works: pfqueue program is just a frontend that pulls informations from backends; these backends are specialized libraries that can "talk" to one MTA and pass informations to pfqueue. These backends are simply shared library with a well defined API, so the whole system is very simple to extend. So far, I've only added support for exim, and obviously I've keeped the original support for Postfix.

For postfix users, nothing has changed, then.

pfqueue should be able to find the suitable backend for underlying MTA, but please keep in mind these new options:

Since the code has been changed almost completely, a detailed Changelog cannot be very useful. I'll only add that now pfqueue uses libtool for building from source.

I'm almost sure that I'm introducing some (many?) new bugs, so don't blame me but email them to me :

Hope exim users will find this helpful.


Work is going on. At the moment, I've splitted pfqueue into 3 backends, to handle postfix 1.x, postfix 2.x and exim servers. They seem to work fine, but I have to fix some formal inconsistencies, due to the different way postfix and exim handle queues.

Nothing will be officially released until these little things are fixed, but if you like, you can get source from CVS, which should be fine.


No releases, this time. For the record, I'm willing to convert pfqueue in a multi-server program so that systems based on exim or courier can be managed as well. This will take me some days, but if you out there have bugs or whatsoever in 0.3.8 I could release a postfix-bound 0.3.9.


Another release, 0.3.8. Some new features, here you are:


pfqueue is an effort to give postqueue/mailq/postsuper/exim4 a console (ncurses) interface: it won't add any particular functionality to those provided with MTAs themselves, but will hopefully make them easier to use.

It's a real-time queue scanner, that shows per-queue lists of existing messages; the messages can be shown, deleted, put on hold, released or requeued

Just for example, it may be useful to inspect a traffic jam at a given time, to see what is falling into and unexpectedly crowding your deferred queue.


Why this...

Well, there's no such tool for postfix, this should be enough :)

Postfix is a great MTA, I've been using it for a long time, and the one and only thing I've always missed is such a real-time tool.

Then I made it work for exim too


pfqueue is a simple C program, based on ncurses.


My name is Stefano Rivoir (Jabber ID:, or ICQ# 346151592)


Current version is 0.5.6, released on February 12th, 2007. With it you can:




You can download source directly from Sourceforge clicking this image: Logo

pfqueue is know to work in Linux, FreeBSD and NetBSD; if you know about other OS's, let me know.

Note that I've seen around packages for RedHat, SuSE, Gentoo and Slackware, as well as packaged ports for FreeBSD and NetBSD; see official sites

Here is some links:

Debian testing/unstable Thanks to Daniel Baumann
Debian stable backport Thanks to Daniel Baumann
Slackware Thanks to Alessandro Fernandes Martins


Just untar what you've downloaded, and

# sh ./configure

# make install

If you have all the required packages, it should be allright :)