++ed by:

1 PAUSE user

Juerd Waalboer


Qmail::Deliverable::Client - Client for qmail-deliverabled


    use Qmail::Deliverable::Client qw(deliverable);

    $Qmail::Deliverable::Client::SERVER = "";

    if (deliverable "foo@example.com") { ... }


Qmail::Deliverable comes with a daemon program called qmail-deliverabled. This module is a front end to it.

This module requires LWP (libwww-perl), available from CPAN.

Error reporting

The error message for communication failure is reported via a warning, but also available via $Qmail::Deliverable::Client::ERROR.



IP adress and port of the qmail-deliverabled server, joined by a colon. Defaults to, just like the daemon.

This variable can also be assigned a code reference, in which case it is called in scalar context for each remote call, using the returned value.

If the value is undef, then a connection failure is faked, but without the warning.


All documented functions are exportable, and a tag :all is available for convenience.

Unless documented differently, these functions follow the interfaces described in Qmail::Deliverable.

qmail_local $address

As Qmail::Deliverable::qmail_local. Warns and returns "" on communication failure.

deliverable $address
deliverable $local

As Qmail::Deliverable::deliverable. Warns and returns 0x2f on communication failure.


The server on which I benchmarked this, the client+daemon combination (on localhost) reached 300 deliverability checks per second for assigned/virtual users. Real users are slower: around 150 checks per second.


This software is released into the public domain, and does not come with warranty or guarantee of any kind. Use it at your own risk.


Juerd Waalboer <#####@juerd.nl>