В моей системе разработки Linux я использую фальшивая почта писать письма в каталог вместо их отправки. Почтовые файлы содержат заголовки и текст сообщения в кавычках для печати, text / plain в UTF-8. Как я могу прочитать отдельный почтовый файл и «расшифровать» цитируемую печать, чтобы разрывы строк и специальные символы отображались правильно?
Вот пример немецкого почтового файла с разрывами строк и специальными символами:
Message-ID: <1317977606.4e8ebe06ceab7@myserver.local>
Date: Fri, 07 Oct 2011 10:53:26 +0200
Subject: Registrierung
From: me@me.com
To: tt99@example.com
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Hallo,
Sie haben sich auf Meinserver.de als Benutzer regist=
riert. Um Ihre
Registrierung abzuschlie=C3=9Fen, klicken Sie auf folg=
enden Link:
http://meinserver.de/benutzer/bestaetigen/3lk6lp=
ga1kcgcg484kc8ksg
Я хочу, чтобы специальные символы были заменены их соответствующими аналогами, а разрывы строк, вставленные в кодировке с возможностью печати (те, которые имеют "=" в конце), удалены.
Хорошо, отвечу на мой собственный вопрос здесь, основанный на поиске в Google и полезных комментариях mailq.
Вкратце: я установил и использовал mutt
. Мне пришлось немного повозиться с моей настройкой: внутри каталога my_dir
где fakemail создавал почтовые файлы, я создал каталоги new
, cur
и tmp
и указал fakemail
к my_dir/new
. Затем я начал болтать с
mutt -f my_dir
Теперь я могу просматривать новые письма, смотреть старые письма, умляуты отображаются правильно - отлично!
Ответ: просто сделай это.
Либо используйте API-интерфейсы на предпочитаемом вами языке программирования для анализа Сообщения MIME и расшифровать цитируемый-печатный и base64. Или вы делаете это самостоятельно, написав программное обеспечение, реализующее связанные стандарты.
Оба варианта работают. Выберите право и дерзайте. (Затем просмотрите Stackoverflow для подробностей, поскольку это выходит за рамки Serverfault).