371: def process_rcpt_to rcpt
372: unless @state.include?(:mail_from)
373: send_data "503 MAIL is required before RCPT\r\n"
374: else
375: succeeded = proc {
376: send_data "250 Ok\r\n"
377: @state << :rcpt unless @state.include?(:rcpt)
378: }
379: failed = proc {
380: send_data "550 recipient is unacceptable\r\n"
381: }
382:
383: d = receive_recipient rcpt
384:
385: if d.respond_to?(:set_deferred_status)
386: d.callback &succeeded
387: d.errback &failed
388: else
389: (d ? succeeded : failed).call
390: end
391:
392: ??
393: end
394: end