         # File lib/protocols/smtpclient.rb, line 265
    265:                 def receive_data_response
    266:                         return invoke_error unless @range == 3
    267:
    268:                         # The data to send can be given either in @args[:content] (an array or string of raw data
    269:                         # which MUST be in correct SMTP body format, including a trailing dot line), or a header and
    270:                         # body given in @args[:header] and @args[:body].
    271:                         #
    272:                         if @args[:content]
    273:                                 send_data @args[:content].to_s
    274:                         else
    275:                                 # The header can be a hash or an array.
    276:                                 if @args[:header].is_a?(Hash)
    277:                                         (@args[:header] || {}).each {|k,v| send_data "#{k}: #{v}\r\n" }
    278:                                 else
    279:                                         send_data @args[:header].to_s
    280:                                 end
    281:                                 send_data "\r\n"
    282:
    283:                                 if @args[:body].is_a?(Array)
    284:                                         @args[:body].each {|e| send_data e}
    285:                                 else
    286:                                         send_data @args[:body].to_s
    287:                                 end
    288:
    289:                                 send_data "\r\n.\r\n"
    290:                         end
    291:
    292:                         @responder = :receive_message_response
    293:                 end