# File lib/em/protocols/smtpserver.rb, line 282
282:       def process_data
283:         unless @state.include?(:rcpt)
284:           send_data "503 Operation sequence error\r\n"
285:         else
286:           succeeded = proc {
287:             send_data "354 Send it\r\n"
288:             @state << :data
289:             @databuffer = []
290:           }
291:           failed = proc {
292:             send_data "550 Operation failed\r\n"
293:           }
294: 
295:           d = receive_data_command
296: 
297:           if d.respond_to?(:callback)
298:             d.callback(&succeeded)
299:             d.errback(&failed)
300:           else
301:             (d ? succeeded : failed).call
302:           end
303:         end
304:       end