Apache2-Protocol-ESMTP
view release on metacpan or search on metacpan
lib/Apache2/Protocol/ESMTP.pm view on Meta::CPAN
$p->register_callback(qr/^ehlo\s+(\S*?)?\s*$/i, \&_ehlo, 'protocol');
$p->register_callback(qr/^mail from:\s*<?(\S+?)?>?\s*$/i, \&_mail, 'protocol');
$p->register_callback(qr/^rcpt to:\s*<?(\S+?)?>?\s*$/i, \&_rcpt, 'protocol');
$p->register_callback(qr/^data\s*$/i, \&_data, 'protocol');
$p->register_callback(qr/^expn\s+(\S+?)?\s*$/i, \&_expn, 'protocol');
$p->register_callback(qr/^vrfy\s+(\S+?)?\s*$/i, \&_vrfy, 'protocol');
$p->register_callback(qr/^rset\s*$/i, \&_rset, 'protocol');
$p->register_callback(qr/^noop\s*$/i, \&_noop, 'protocol');
$p->register_callback(qr/^help\s*(\S*?)?\s*$/i, \&_help, 'protocol');
$p->register_callback(qr/^quit\s*$/i, \&_quit, 'protocol');
$p->enable_callbacks('protocol');
$p->setup_logging($c);
Apache2::Protocol::handler($c, $p);
}
sub new {
my $proto = shift;
my $class = ref $proto || $proto;
my $self = bless($class->SUPER::new(@_), $class);
lib/Apache2/Protocol/ESMTP.pm view on Meta::CPAN
}
}
sub HEADER {
}
sub _eoh {
my $self = shift;
my $line = shift;
#$self->disable_callbacks('headers');
$self->chunkmode(1);
$self->EOH();
$self->_body($line);
}
sub EOH {
}
sub _body {
my $self = shift;
lib/Apache2/Protocol/ESMTP.pm view on Meta::CPAN
}
}
sub BODY {
}
sub _eom {
my $self = shift;
$self->chunkmode(0);
$self->enable_callbacks('protocol');
$self->default_line_handler(\&_unknown);
# Clear state
$self->{_bodystate} = '';
$self->{_seenMAIL} = 0;
$self->{_seenRCPT} = 0;
$self->{_seenDATA} = 0;
$self->send_response($self->EOM());
}
lib/Apache2/Protocol/ESMTP.pm view on Meta::CPAN
sub _data {
my $self = shift;
if(not $self->{_seenMAIL}) {
$self->send_response(503, 'Need MAIL command');
}
elsif(not $self->{_seenRCPT}) {
$self->send_response(503, 'Need RCPT (recipient)');
}
else {
$self->disable_callbacks('protocol');
$self->default_line_handler(\&_header);
$self->send_response($self->DATA(@_));
}
# Return OK
}
sub DATA {
return(354, 'Enter mail, end with "." on a line by itself');
}
( run in 0.314 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )