NAME
Qmail::Deliverable::Client - Client for qmail-deliverabled
SYNOPSIS
use Qmail::Deliverable::Client qw(deliverable);
$Qmail::Deliverable::Client::SERVER = "127.0.0.1:8998";
if (deliverable "foo@example.com") { ... }
DESCRIPTION
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.
Configuration
- $Qmail::Deliverable::Client::SERVER
-
IP adress and port of the qmail-deliverabled server, joined by a colon. Defaults to
127.0.0.1:8998
, 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.
Functions
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.
PERFORMANCE
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.
LEGAL
This software does not come with warranty or guarantee of any kind. Use it at your own risk.
This software may be redistributed under the terms of the GPL, LGPL, modified BSD, or Artistic license, or any of the other OSI approved licenses listed at http://www.opensource.org/licenses/alphabetical. Distribution is allowed under all of these these licenses, or any smaller subset of multiple or just one of these licenses.
When using a packaged version, please refer to the package metadata to see under which license terms it was distributed. Alternatively, a distributor may choose to replace the LICENSE section of the documentation and/or include a LICENSE file to reflect the license(s) they chose to redistribute under.
AUTHOR
Juerd Waalboer <#####@juerd.nl>