NAME
Mojo::Email::Checker::SMTP - Email checking by smtp with Mojo enviroment. (IDN supported)
SYNOPSIS
use strict;
use Mojolicious::Lite;
use Mojo::IOLoop::Delay;
use Mojo::Email::Checker::SMTP;
my $checker = Mojo::Email::Checker::SMTP->new;
post '/' => sub {
my $self = shift;
my $request = $self->req->json;
my @emails;
my $delay = Mojo::IOLoop::Delay->new;
$delay->on(finish => sub {
$self->render(json => \@emails);
});
my $cb = $delay->begin();
for (@{$request}) {
my $cb = $delay->begin(0);
$checker->check($_, sub { push @emails, $_[0] if ($_[0]); $cb->(); });
}
$cb->();
};
app->start;
DESCRIPTION
Check for email existence by emulation smtp session to mail server (mx or direct domain, cycling for multiple ip) and get response. Mechanism description http://en.wikipedia.org/wiki/Callback_verification
METHODS
new
This is Checker object constructor. Available parameters are:
- timeout
-
Timeout (seconds) for all I/O operations like to connect, wait for server response and NS Lookup. (15 sec. is default).
- helo
-
HELO value for smtp session ("ya.ru" :) is default). Use your own domain name for this value.
- cache
-
Enable caching for nslookup operation. In value, cache records timeout (in seconds). For example (cache => 3600) for one hour. Cache disabled if 0 value or undefined.
check(STR, CALLBACK(EMAIL, ERROR))
Main function for checking.
- STR
-
String with email address ("foo@foobox.foo")
- CALLBACK
-
Reference to callback function (see SYNOPSIS for example). Pass to CALLBACK two parameters, 1. valid (see comment) EMAIL (STR), 2. ERROR (STR) message.
Comment: If EMAIL and ERROR is defined, it's mean that reject from smtp server recieved before RCPT command. In other cases only one parameter is defined.
COPYRIGHT
Copyright Anatoly Y. <snelius@cpan.org>.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.