*/
public class DataCommand extends SmtpCommand {
public void execute(SmtpConnection conn, SmtpState state,
SmtpManager manager, String commandLine)
throws IOException {
MovingMessage msg = state.getMessage();
if (msg.getReturnPath() == null) {
conn.println("503 MAIL command required");
return;
}
if (!msg.getRecipientIterator().hasNext()) {
conn.println("503 RCPT command(s) required");
return;
}
conn.println("354 Start mail input; end with <CRLF>.<CRLF>");
String value = "Return-Path: <" + msg.getReturnPath() +
">\r\n" + "Received: from " +
conn.getClientAddress() + " (HELO " +
conn.getHeloName() + "); " +
new java.util.Date() + "\r\n";
msg.readDotTerminatedContent(new BufferedReader(StreamUtils.splice(new StringReader(value),
conn.getReader())));
String err = manager.checkData(state);
if (err != null) {
conn.println(err);