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