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! ! !