В прошлый раз я получал 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?=
Содержимое скрипта:
Название скрипта тут другое, но это сути не меняет.
Если подать в качестве аргумента закодированную строку из тела письма, скрипт вернет корректное название темы.