348: def process_mail_from sender
349: if (@@parms[:starttls]==:required and !@state.include?(:starttls))
350: send_data "550 This server requires STARTTLS before MAIL FROM\r\n"
351: elsif (@@parms[:auth]==:required and !@state.include?(:auth))
352: send_data "550 This server requires authentication before MAIL FROM\r\n"
353: elsif @state.include?(:mail_from)
354: send_data "503 MAIL already given\r\n"
355: else
356: unless receive_sender sender
357: send_data "550 sender is unacceptable\r\n"
358: else
359: send_data "250 Ok\r\n"
360: @state << :mail_from
361: end
362: end
363: end