
Como parte de um script, quero pegar um arquivo contendo um email e extrair um cabeçalho, por exemplo, o cabeçalho do assunto. O seguinte quase funciona:
formail -c -x subject < FILE
Mas ele não decodifica cabeçalhos codificados usando a sintaxe de palavra codificada MIME (também conhecida como RFC2047), por exemplo, =?UTF-8?B?w6lsw6ltZW50?=
.
Qual é uma boa maneira de extrair um cabeçalho de e-mail enquanto cuida da decodificação de partes de palavras codificadas em MIME?
Pergunta relacionada:https://stackoverflow.com/questions/39457380/retrieve-email-subject-from-file-via-bash
Responder1
canalize para:
Pitão)
formail -c -x Subject < FILE | \
python -c "from email.header import decode_header;
import sys;
text, encoding = decode_header(sys.stdin.read())[0];
print text.decode(encoding)"
php)
formail -c -x Subject < FILE | \
php -r 'echo iconv_mime_decode(stream_get_contents(STDIN),1,"utf-8");'
ou se tiver certeza de que o cabeçalho será, =?UTF-8?B?…
você pode fazer facilmente:
formail -c -x Subject < FILE | \
awk -F '[?]' '{print $4}' | \
openssl enc -base64 -d -A
python deve ser provavelmente o mais universal, já que provavelmente está presente em todos os sistemas por padrão e até mesmo o módulo de e-mail está presente.