func doParse(_data) // TODO need_email() need_mimetypes() println(msg, ' = email.message_from_string(', MailText, ')') println(textbody, ' = ""') println(htmlbody, ' = ""') println('if ', msg, '.is_multipart():') block.inclvl() println(counter, ' = 1') println('for ', part, ' in msg.walk():') block.inclvl() println(filename, ' = ', part, '.get_filename()') println('if not ', filename, ':') block.inclvl() println(ext, ' = mimetypes.guess_extension(',part,'.get_content_type())') println('if ', part, '.get_content_type() == "text/plain":') block.inclvl() println(bodytext, ' = ', part, '.get_payload(decode=True)') block.declvl() println('if ', part, '.get_content_type() == "text/html":') block.inclvl() println(htmltext, ' = ', part, '.get_payload(decode=True)') block.declvl() println('if not ', ext, ':') block.inclvl() println(ext, ' = ".bin"') block.declvl() //if !ext println(filename, ' = "part-%03d%s" % (counter, ext)') block.declvl() //if !filename println(counter, ' += 1') event(onParse, filename) block.declvl() //for part block.declvl() //if multipart println('else:') block.inclvl() println(textbody, ' = ', msg, '.get_payload(decode=True)') block.declvl() end func From() return(msg && '["From"]') end func To() return(msg && '["To"]') end func Date() return(msg && '["Date"]') end func Subject() return(msg && '["Subject"]') end func Text() return(textbody) end func HTML() return(htmlbody) end func Attach() return('map(lambda x: x.get_payload(decode=True), ' && msg && '.get_payload()') end