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