Os cabeçalhos de um e-mail podem informar se ele tem um anexo?

7

Estou tentando filtrar e-mails com anexos, mas no sistema que estou usando, só tenho acesso aos cabeçalhos (para filtragem). Existe uma maneira consistente de determinar se um email contém anexos usando somente cabeçalhos? (Talvez verificar se o tipo de conteúdo é multipartes?)

    
por iainbeeston 29.10.2012 / 07:42

4 respostas

7

Você não pode alcançar seu objetivo desejado se tiver acesso somente aos cabeçalhos. As informações podem estar lá como um cabeçalho não padronizado, mas isso obviamente não é algo em que você possa confiar. Tenha acesso ao corpo ou abandone a ideia.

    
por 29.10.2012 / 09:44
2

Os e-mails sem anexos podem ser do tipo de conteúdo: multipartes também, como aqueles com versões em texto e html do conteúdo. O que você teria que verificar é c-t: multipart e então para partes que não são do tipo content: text / *, mas para isso você precisará acessar o corpo: (

    
por 29.10.2012 / 07:54
1

Para anexos Mime, os e-mails com Content-Type: multipart/mixed geralmente têm anexos (mas não precisam). E-mails com um Content-Type: diferente de multipart/* não teriam anexos. Qualquer outra coisa ( multipart/alternative sendo o mais comum) pode ter anexos.

E, em qualquer caso, isso depende do que se entende por anexo. Se por anexo, você quer dizer apenas as partes mime que têm um attachment Content-Disposition , então você não vai encontrá-lo no cabeçalho do e-mail, apenas nos cabeçalhos mime correspondentes.

Coisas que você pode não querer considerar como anexos são, por exemplo, assinaturas de email, partes de uma mensagem multipart/related que são, por exemplo, imagens incorporadas na assinatura de uma mensagem html ...

    
por 29.10.2012 / 13:45
0

Eu recebi o cabeçalho de e-mail usando o código abaixo:

 msg_header = @imap.fetch(message_id, 'RFC822.HEADER').first.attr['RFC822.HEADER']
headers = msg_header.split(/\r\n|: /)
email_header = headers[headers.index('Content-Type')+1].split(/;/)

Em seguida, você pode decidir no cabeçalho que este e-mail tem anexo ou não, sem obter corpo.

você pode verificar as informações do cabeçalho em aqui Espero que isso ajude você.

    
por 28.02.2014 / 08:39

Tags