NAME
AnyEvent::SMTP::Client - Simple asyncronous SMTP Client
SYNOPSIS
use AnyEvent::SMTP::Client 'sendmail';
sendmail
from => 'mons@cpan.org',
to => 'mons@cpan.org', # SMTP host will be detected from addres by MX record
data => 'Test message '.time().' '.$$,
cb => sub {
if (my $ok = shift) {
warn "Successfully sent";
}
if (my $err = shift) {
warn "Failed to send: $err";
}
}
;
DESCRIPTION
Asyncronously connect to SMTP server, resolve MX, if needed, then send HELO => MAIL => RCPT => DATA => QUIT and return responce
FUNCTIONS
sendmail ... , cb => $cb->(OK,ERR)
Argument names are case insensitive. So, it may be calles as
sendmail From => ..., To => ..., ...
and as
sendmail from => ..., to => ..., ...
Arguments description are below
- host => 'smtp.server'
-
SMTP server to use. Optional. By default will be resolved MX record
- port => 2525
-
SMTP server port. Optional. By default = 25
- server => 'some.server:25'
-
SMTP server. The same as pair of host:port
- helo => 'hostname'
-
HELO message. Optional. By default = hostname()
- from => 'mail@addr.ess'
- to => 'mail@addr.ess'
- to => [ 'mail@addr.ess', ... ]
- data => 'Message body'
- Message => 'Message body'
-
Message text. For message composing may be used, for ex: MIME::Lite
- timeout => int
-
Use timeout during network operations
- debug => 0 | 1
-
Enable connection debugging
- cb => $cb->(OK,ERR)
-
Callback.
When $args{to} is a single argument:
OK - latest response from server If OK is undef, then something failed, see ERR ERR - error response from server
When $args{to} is an array:
OK - hash of success responces or undef. keys are addresses, values are responces ERR - hash of error responces. keys are addresses, values are responces
See examples
- cv => AnyEvent->condvar
-
If passed, used as group callback operand
sendmail ... cv => $cv, cb => sub { ...; };
is the same as
$cv->begin; sendmail ... cb => sub { ...; $cv->end };
VARIABLES
$MAXCON [ = 10]
Maximum number of connections to any host. Default is 10
%MAXCON
Per-host configuration for maximum number of connection
Please note, host is hostname passed in argument, or resolved MX record.
So, if passed host =
'localhost'>, should be used $MAXCON{localhost}
, if passed host =
'127.0.0.1'>, should be used $MAXCON{'127.0.0.1'}
# set default limit to 20
$AnyEvent::SMTP::Client::MAXCON = 20;
# don't limit localhost connections
$AnyEvent::SMTP::Client::MAXCON{'localhost'} = 0;
# big limit for one of gmail MX
$AnyEvent::SMTP::Client::MAXCON{'gmail-smtp-in.l.google.com.'} = 100;
$ACTIVE
Number of currently active connections
%ACTIVE
Number of currently active connections per host
BUGS
Bug reports are welcome in CPAN's request tracker http://rt.cpan.org/NoAuth/Bugs.html?Dist=AnyEvent-SMTP
AUTHOR
Mons Anderson, <mons at cpan.org>
COPYRIGHT & LICENSE
Copyright 2009 Mons Anderson, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.