use strict;
use warnings;
-use Carp;
use IO::Socket;
use PVE::SafeSyslog;
my $class = ref($this) || $this;
- croak("undefined socket: ERROR") if !defined($sock);
+ die("undefined socket: ERROR") if !defined($sock);
my $self = {};
$self->{sock} = $sock;
$self->reply ("250 2.5.0 OK");
next;
} elsif ($cmd eq 'mail') {
- if ($args =~ m/^from:\s*<(\S*)>/i) {
+ if ($args =~ m/^from:\s*<([^\s\>]*)>[^>]*$/i) {
delete $self->{to};
$self->{from} = $1;
$self->reply ('250 2.5.0 OK');
next;
}
} elsif ($cmd eq 'rcpt') {
- if ($args =~ m/^to:\s*<(\S+)>/i) {
+ if ($args =~ m/^to:\s*<([^\s\>]+)>[^>]*$/i) {
push @{$self->{to}} , $1;
$self->reply ('250 2.5.0 OK');
next;
} else {
- $self->reply ("501 5.5.2 Syntax: MAIL FROM: <address>");
+ $self->reply ("501 5.5.2 Syntax: RCPT TO: <address>");
next;
}
} elsif ($cmd eq 'data') {