
Como parte de un script, quiero tomar un archivo que contiene un correo electrónico y extraer un encabezado, por ejemplo, el encabezado del asunto. Lo siguiente casi funciona:
formail -c -x subject < FILE
Pero no decodifica encabezados codificados utilizando la sintaxis de palabras codificadas MIME (también conocida como RFC2047), por ejemplo, =?UTF-8?B?w6lsw6ltZW50?=
.
¿Cuál es una buena manera de extraer el encabezado de un correo electrónico mientras nos encargamos de decodificar las partes de palabras codificadas en MIME?
Pregunta relacionada:https://stackoverflow.com/questions/39457380/retrieve-email-subject-from-file-via-bash
Respuesta1
canalícelo a:
pitón)
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");'
o si está seguro de que el encabezado será =?UTF-8?B?…
entonces puede hacer fácilmente:
formail -c -x Subject < FILE | \
awk -F '[?]' '{print $4}' | \
openssl enc -base64 -d -A
Python probablemente debería ser el más universal, ya que probablemente esté en todos los sistemas de forma predeterminada e incluso el módulo de correo electrónico esté presente.