} else if (c.startsWith("NOOP")) { conn.println("250 OK");
} else if (c.startsWith("QUIT")) { conn.println("221 " + conn.vhost + " closing connection"); return;
} else if (c.startsWith("MAIL FROM:")) {
- conn.println("250 " + (from = new Address(command.substring(10).trim())) + " is syntactically correct");
+ command = command.substring(10).trim();
+ from = command.equals("<>") ? null : new Address(command);
+ conn.println("250 " + from + " is syntactically correct");
} else if (c.startsWith("RCPT TO:")) {
- if (from == null) { conn.println("503 MAIL FROM must precede RCPT TO"); continue; }
+ //if (from == null) { conn.println("503 MAIL FROM must precede RCPT TO"); continue; }
command = command.substring(8).trim();
if(command.indexOf(' ') != -1) command = command.substring(0, command.indexOf(' '));
Address addr = new Address(command);