postfix: formato de nome de arquivo diferente para mensagens do Maildir

2

Estou usando postfix com o formato maildir. Os nomes de arquivos das mensagens armazenadas no maildir são parecidos com isto:

1386021659.27745_1.alpha:2,S

Eu entendo que a primeira parte é a época da época, não tenho certeza sobre o resto. Mas eu gostaria de ter algum nome humano mais amigável, como

2013-12-18__120502.sender_or_subject_of_the_message:2,S

Eu preciso manipular as mensagens / arquivos individuais com frequência (essa é a razão pela qual estou usando o maildir em primeiro lugar). Ter um nome de arquivo mais descritivo ajudaria.

Posso definir isso em postfix ?

    
por Martin Vegter 18.12.2013 / 15:20

4 respostas

5

Não, o Postfix tem nenhuma maneira de configurar isso . Como disse @HBruijn, o formato do Maildir é uma especificação e seria bastante esforço para fazer com que o LDA e o MUA concordem em um formato diferente. Dito isso, se você não gostar dos nomes de arquivos em seu maildir, você poderá embelezá-los um pouco quando procurar por eles:

$ ls | head -1
1325471944.27745_1.beta,S=10662:2,S

$ ls | head -1 | perl -pe 's/(\d+)/localtime($1)/e'
Mon Jan  2 03:39:04 2012.27745_1.beta,S=10662:2,S
    
por 24.01.2014 / 04:25
2

A especificação original do formato Maildir seria um bom começo para responder à sua pergunta.

O requisito é que cada nova mensagem seja armazenada com um nome exclusivo.

Unless you're writing messages to a maildir, the format of a unique name is none of your business.

A unique name can be anything that doesn't contain a colon (or slash) and doesn't start with a dot. Do not try to extract information from unique names.

Okay, so you're writing messages. A unique name has three pieces, separated by dots. On the left is the result of time() or the second counter from gettimeofday(). On the right is the result of gethostname(). (To deal with invalid host names, replace / with 7 and : with 2.) In the middle is a delivery identifier, discussed below.

...

Identificadores de exibição antigos usam os seguintes formatos para o identificador de entrega: :

  • n , em que n é o ID do processo e onde esse processo foi bifurcado para fazer uma entrega. Infelizmente, alguns sistemas operacionais tolos repetem IDs de processo rapidamente, quebrando a combinação de tempo padrão + pid.
  • n_m , onde n é o ID do processo e m é o número de entregas feitas por este processo.

Agora, a segunda parte da sua pergunta, basta colocar o nome do arquivo exclusivo não é algo que você pode configurar, a menos que você vá e modifique o código-fonte do agente de entrega local.

Uma solução alternativa seria: avançar e canalizar o email para o script que armazenará a mensagem com nomes de arquivo ao seu gosto, essencialmente criando seu próprio agente de entrega local. Isso deve ser bastante trivial.

    
por 18.12.2013 / 16:34
-1

se você "precisar manipular as mensagens / arquivos individuais com frequência", talvez considere escrever um script que ajude a manipulá-los.

como efeito colateral, seu script pode expor uma interface legível para os nomes reais dos arquivos. algo como:

dowithmails rm --from 2014-01-12  --to 2014-01-15
    
por 27.01.2014 / 17:34
-2

Quando você usa pop3 e Maildir irá conter um arquivo de texto grande.Por todas as mensagens recebidas armazenadas em um arquivo grande. Quando você usa imap e Maildir irá conter muitos pequenos arquivos de texto. Porque cada mensagem recebida armazenada no arquivo de texto separado.

    
por 13.12.2016 / 06:28