         # File lib/em/protocols/smtpserver.rb, line 424
    424:       def process_data_line ln
    425:         if ln == "."
    426:           if @databuffer.length > 0
    427:             receive_data_chunk @databuffer
    428:             @databuffer.clear
    429:           end
    430:
    431:
    432:           succeeded = proc {
    433:             send_data "250 Message accepted\r\n"
    434:           }
    435:           failed = proc {
    436:             send_data "550 Message rejected\r\n"
    437:           }
    438:
    439:           d = receive_message
    440:
    441:           if d.respond_to?(:set_deferred_status)
    442:             d.callback(&succeeded)
    443:             d.errback(&failed)
    444:           else
    445:             (d ? succeeded : failed).call
    446:           end
    447:
    448:           @state.delete :data
    449:         else
    450:           # slice off leading . if any
    451:           ln.slice!(0...1) if ln[0] == 46
    452:           @databuffer << ln
    453:           if @databuffer.length > @@parms[:chunksize]
    454:             receive_data_chunk @databuffer
    455:             @databuffer.clear
    456:           end
    457:         end
    458:       end