Postfix: manter e-mails fora da fila de espera possível?

1

Posso fazer isso:

  1. mv um e-mail fora da fila de espera do Postfix para dizer, /tmp/foo/ .

  2. Guarde o email em /tmp/foo/ por um período arbitrário (variando de segundos a dias). Durante esse período, o servidor Postfix pode ser devolvido uma ou mais vezes.

  3. E, no momento da minha escolha, mv este e-mail de /tmp/foo/ para a fila de espera do Postfix ... tudo sem nenhum conflito de ID de fila e sobrescritas de e-mail resultantes?

De acordo com este link , uma ID de fila pode ser garantida Único somente dentro de intervalos de 1 segundo! Não tenho certeza se isso ainda é verdade.

Se eu não posso fazer o acima, digamos, então posso fazer isso:

  1. Gere um novo ID de fila de 11 caracteres fora do Postfix (digamos, usando mktemp ) exclusivo na fila de espera do Postfix (no momento de sua geração) e

  2. mv a mensagem retornada de /tmp/foo/ para a fila de espera do Postfix com essa nova ID de fila?

Essencialmente , minha exigência é manter certos e-mails por períodos arbitrários de tempo; apenas isso, em vez de mantê-los na fila de espera do Postfix, mantenha-os em outro lugar.

Muito obrigado antecipadamente.

    
por Harry 06.03.2012 / 02:47

1 resposta

3

Meu entendimento é que o Postfix Queue ID tem dois componentes, um contador de tempo de milissegundos que se repete a cada segundo, e o número de Inode do arquivo de mensagens.

Nesse caso, a probabilidade de colisões de tempo é de 1/1000 ou 0,1%, o que considero não confiável, portanto, a exclusividade deve ser gerenciada com base apenas no número de Inode.

O número do Inode é exclusivo enquanto o arquivo existe no sistema de arquivos da fila do Postfix, portanto, qualquer movimentação deve estar dentro do mesmo sistema de arquivos para preservar a exclusividade do número de Inodes. A movimentação para outro sistema de arquivos libera o Inode no sistema de arquivos da fila Postix, permitindo a reutilização do Inode. A maioria dos sistemas de arquivos não define quando os Inodes são reutilizados e outros o fazem rapidamente, pois a reutilização de um Inode livre em cache é muito mais rápida do que a leitura do armazenamento de backup.

Observar a movimentação apenas dentro da mesma restrição do sistema de arquivos garante que a ID da fila não será reutilizada enquanto o arquivo de mensagens existir.

O fato de o Postfix processar ou não a mensagem quando retornado à fila de espera é desconhecido para mim. Minha esperança é que outro possa saber e entre nós você terá uma resposta completa.

    
por 24.09.2013 / 02:51

Tags