Python poucas linhas de código para realizar a análise de e-mail

prefácio

Como implementar a análise de e-mail através de python? O formato do correio é muito complexo, principalmente o protocolo mime.Este artigo parte principalmente da realização, e o princípio específico pode ser estudado por você mesmo.

1. Instalação

A análise de correio é obtida através da biblioteca Flanker de código aberto do mailgun. A biblioteca contém análise de endereço de email e análise de formato mime de email.

Digite o seguinte comando:

pip install flanker

Em segundo lugar, a implementação do código

1. Cabeçalho do correio

def emlAnayalyse(path):
    with open(path, 'rb') as fhdl:
        raw_email = fhdl.read()
        eml = mime.from_string(raw_email)
        subject = eml.subject
        eml_header_from = eml.headers.get('From')
        eml_header_to = eml.headers.get('To')
        eml_header_cc=eml.headers.get('Cc')
        eml_time = eml.headers.get('Date')
        # get_annex(eml, '1')
        eml_attachs=attachEml1(eml)
        eml_body = contentEml(eml)
        f = HTMLFilter()
        f.feed(eml_body)
        print(f.text)
        
def main():
    path='邮件名.eml'
    emlAnayalyse(path)
    
if __name__ == "__main__":
    main()

O eml.header contém informações de cabeçalho, como remetente, destinatário, cc e hora.

2. Corpo do e-mail

# 邮件正文
def contentEml(eml):
    # 判断是否为单部分

    if eml.content_type.is_singlepart():
        eml_body = eml.body
    else:
        eml_body = ''
        for part in eml.parts:
            # 判断是否是多部分
            if part.content_type.is_multipart():
                eml_body = contentEml(part)
            else:
                if part.content_type.main == 'text':
                    eml_body = part.body
    return eml_body

Através da função de retorno de chamada, retire a parte do corpo do e-mail 

3. Anexos de e-mail

def attachEml1(eml):
    for part in eml.parts:
        if not part.content_type.is_multipart():    
            name = part.detected_file_name

            with open(name, 'wb') as annex:
                annex.write(part.body)

Determine se é um anexo por content_type.is_multipart() e salve-o.

Resumir

O conteúdo básico da análise de e-mail foi introduzido e os amigos que precisam dele podem se comunicar mais! ! !

Acho que você gosta

Origin blog.csdn.net/kobepaul123/article/details/121962260
Recomendado
Clasificación