NAME
AnyEvent::SMTP::Client - Simple asyncronous SMTP Client
SYNOPSIS
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.