384: def process_rcpt_to rcpt
385: unless @state.include?(:mail_from)
386: send_data "503 MAIL is required before RCPT\r\n"
387: else
388: succeeded = proc {
389: send_data "250 Ok\r\n"
390: @state << :rcpt unless @state.include?(:rcpt)
391: }
392: failed = proc {
393: send_data "550 recipient is unacceptable\r\n"
394: }
395:
396: d = receive_recipient rcpt
397:
398: if d.respond_to?(:set_deferred_status)
399: d.callback(&succeeded)
400: d.errback(&failed)
401: else
402: (d ? succeeded : failed).call
403: end
404:
405: ??
406: end
407: end