Бортовой журнал Ктулху

Как декодировать тему электронного письма в командной строке Linux | Retrieving email subject and decode using Linux command line

В прошлый раз я получал eml файлы с почтового ящика Google, теперь понадобилось декодировать тему письма до попадания в таблицу.

Тема письма в лучшем случае будет примерно такая:

=?UTF-8?B?UmU6IFtSZXE6I2lkMjU5MzIzXSBSRTog8J+SqfCfkqnwn5KpINCd0LDRiNC1INC/0LjRgQ==?==?UTF-8?B?0YzQvNC+INC+0YfQtdC90Ywg0L/QvtC7?=

Для её корректного получения я нашел более простой (хотя, это как посмотреть) способ:

$ cat file.eml | formail -x Subject:

Как минимум, для него необходим formail но нет никаких танцев с бубнами и регулярками.

Далее, приходится использовать б-гмерзкий php7-cli и функцию iconv_mime_decode для декодирования сообщения в понятный текст, так как подходящего аналога для командной строки не нашлось:

php script.php =?UTF-8?B?UmU6IFtSZ ……. fQtdC90Ywg0L/QvtC7?=

Содержимое скрипта:

<?php
if (isset($argc)) {
for ($i = 0; $i < $argc; $i++) {
if($i === 1) {
echo iconv_mime_decode($argv[$i]);
}
}
}
?>

Название скрипта тут другое, но это сути не меняет.

Если подать в качестве аргумента закодированную строку из тела письма, скрипт вернет корректное название темы.

2021 09 2112 41 12 1