Como leio um único arquivo em um maildir?

5

No meu sistema de desenvolvimento Linux eu uso o fakemail para escrever e-mails para um diretório em vez de enviá-los. Os arquivos de mensagens contêm os cabeçalhos e o texto do correio como citado para impressão, texto / simples em UTF-8. Como posso ler um único arquivo de e-mail e "decodificar" o imprimível entre aspas para que as quebras de linha e os caracteres especiais sejam exibidos corretamente?

Aqui está um exemplo de um arquivo de mensagens alemão com quebras de linha e caracteres especiais:

Message-ID: <[email protected]>
Date: Fri, 07 Oct 2011 10:53:26 +0200
Subject: Registrierung
From: [email protected]
To: [email protected]
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

Eu quero que os caracteres especiais sejam substituídos por seus equivalentes apropriados e as quebras de linha inseridas pela codificação impressa entre aspas (aquelas com um "=" no final) removidas.     

por chiborg 07.10.2011 / 11:09

2 respostas

9

Ok, responda a minha própria pergunta aqui, com base em alguns googling e nos comentários úteis do mailq.

Resumindo: eu instalei e usei mutt . Eu tive que mexer um pouco com a minha configuração: Dentro do diretório my_dir onde o falso-mail estava criando os arquivos de mensagens, eu criei as pastas new , cur e tmp e apontei fakemail para my_dir/new . Então eu comecei mutt com

mutt -f my_dir

Agora eu posso revisar novos e-mails, ver e-mails antigos, os tremas são exibidos corretamente - perfeito!

    
por 13.10.2011 / 15:27
3

A resposta é: basta fazer isso.

Use APIs em sua linguagem de programação preferida para analisar mensagens MIME e decodificar quoted-printable e base64 . Ou você faz isso sozinho escrevendo software implementando os padrões vinculados.

Ambas as opções funcionam. Escolha o certo e vá em frente. (Então, veja o Stackoverflow para detalhes, pois isso está fora do escopo do Serverfault).

    
por 07.10.2011 / 12:46