예제 #1
0
파일: pop3email.py 프로젝트: devilWwj/pyml
def handle_eml(msg_content, folder_path, user, index):
    # fp = codecs.open(path, 'r', encoding='gbk')
    msg = email.message_from_string(msg_content)
    subject = msg.get('Subject')
    subject = decode_subject(subject)
    if subject == u'应聘检验员':
        pdb.set_trace()
    fmail = msg.get('From')
    from_mail = utils.parseaddr(msg.get('From'))[1]
    content = parseutils.get_mail_content(msg)
    if 'gb2312' in from_mail:
        emailq = emailp.search(content)
        if emailq:
            from_mail = emailq.group(0)
        else:
            from_mail = ''
    # nick = utils.parseaddr(msg.get('From'))[0]
    nick = ''
    if fmail:
        nick = fmail.split(' ')[0]
    mailtm = msg.get('date')
    flag, inbox_time, name, uuid = generate_name(msg, folder_path)
    if flag == 0:         #如果是正常邮件的话则走这个过程
        if os.path.isfile(name):
            return 1
        else:
            rst = parseutils.generate_table_data(subject, nick)
            lines = []
            lines.append(subject.strip())
            lines.append(rst[1].replace('"', ''))
            lines.append(rst[0])
            result = parse_eml(msg, content)
            lines.append(result.get(u'联系人', '').strip())
            lines.append(result.get(u'手机', '').strip())
            lines.append(result.get(u'座机', '').strip())
            lines.append(result.get(u'地址', '').strip())
            lines.append(from_mail.strip().replace('"', ''))
            lines.append(user.strip())
            lines.append(content)
            lines.append(int(time.time()))
            lines.append(uuid)
            lines.append(name[len(pth):])
            lines.append(inbox_time)
            # parseutils.write_table([','.join(lines)])
            parseutils.write_table([lines], logger)
            write_mail(name, msg_content)
            return result
    else:   #如果是垃圾邮件或者错误邮件的话,就走这个流程
        result = 'spam'
        if os.path.isfile(name):
            return name
        if flag == 1:
            result = parse_eml(msg, content, True)
            lines = []
            lines.append(subject.strip())
            lines.append(result.get('bugemail', '').strip().replace('"', ''))
            lines.append(user.strip())
            lines.append(int(time.time()))
            lines.append(uuid)
            lines.append(name[len(pth):])
            lines.append(inbox_time)
            parseutils.write_error_mail([lines], logger)
        print decode_header(subject)[0][0].replace(' ', '')
        write_mail(name, msg_content)
        return result
예제 #2
0
파일: parse1.py 프로젝트: fengkaicnic/pyml
            if 'Content-Type' in line:
                if 'text/plain' in line:
                    textflag = True
                else:
                    textflag = False
                continue
            if 'Content-Transfer-Encoding' in line and 'base64' in line:
                if textflag:
                    base64flag = True
            
        pdb.set_trace()        
        strings = ''.join(map(lambda st:st.replace('\n', ''), linelst))
        print base64.decodestring(strings)

if __name__ == '__main__':
    # path = 'd:/nreml'
    path = 'd:/nreml/bug'
    lst = os.listdir(path)
    for pth in lst:
        pth = path + '/' + pth
        try:
            print pth.decode('gb2312').encode('utf-8')
        except UnicodeDecodeError:
            print pth
        fp = codecs.open(pth, 'r')
        msg = email.message_from_file(fp)
        pdb.set_trace()
        content = parseutils.get_mail_content(msg)
        rst = parse_eml(msg, content)
        fp.close()
예제 #3
0
                if 'text/plain' in line:
                    textflag = True
                else:
                    textflag = False
                continue
            if 'Content-Transfer-Encoding' in line and 'base64' in line:
                if textflag:
                    base64flag = True

        pdb.set_trace()
        strings = ''.join(map(lambda st: st.replace('\n', ''), linelst))
        print base64.decodestring(strings)


if __name__ == '__main__':
    # path = 'd:/nreml'
    path = 'd:/nreml/bug'
    lst = os.listdir(path)
    for pth in lst:
        pth = path + '/' + pth
        try:
            print pth.decode('gb2312').encode('utf-8')
        except UnicodeDecodeError:
            print pth
        fp = codecs.open(pth, 'r')
        msg = email.message_from_file(fp)
        pdb.set_trace()
        content = parseutils.get_mail_content(msg)
        rst = parse_eml(msg, content)
        fp.close()