Назад | Перейти на главную страницу

Как мне прочитать отдельный файл в maildir?

В моей системе разработки 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).