Commit 8880f84e authored by Steve Holme's avatar Steve Holme
Browse files

ftpserver.pl: Expanded the SMTP RCPT handler to validate TO addresses

RCPT_smtp() will now check for a correctly formatted TO address which
allows for invalid recipient addresses to be added.
parent 9d4a8c79
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -849,14 +849,23 @@ sub RCPT_smtp {

    logmsg "RCPT_smtp got $args\n";

    # Get the TO parameter
    if($args !~ /^TO:(.*)/) {
        sendcontrol "501 Unrecognized parameter\r\n";
    }
    else {
        $smtp_rcpt = $1;

        # Validate the to address (only a valid email address inside <> is
        # allowed, such as <user@example.com>)
        if ($smtp_rcpt !~
            /^<([a-zA-Z0-9._%+-]+)\@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})>$/) {
            sendcontrol "501 Invalid address\r\n";
        }
        else {
            sendcontrol "250 Recipient OK\r\n";
        }
    }

    return 0;
}