Postfix mailbox_command + netcat + nodejs

2

Eu uso o script Node.js para processar e-mails recebidos e canalizá-los do Postfix via netcat no mailbox_command (a saber: nc 127.0.0.1 3002). O nó está escutando na porta 3002 e chama socket.destroy () quando o email é processado.

No entanto, parece que o postfix não reconhece que o comando foi bem-sucedido e tenta novamente. Bem, não tenho certeza se esse é o postfix que causa o problema, é apenas uma sugestão. Alguns fatos:

  1. O soquete IS é fechado depois que o email é processado. Caso contrário, após 12 mensagens recebidas, o Nó alerta sobre possíveis vazamentos de memória. Então, eu suponho que o netcat sai, portanto, não causa esse problema.
  2. Se eu gerar o processo Node com mailbox_command (consumindo stdin em vez de socket) que então sai com o código 0, o postfix não tentará chamar mailbox_command mais uma vez.
  3. Se eu usar a opção -q para o nó netcat (por exemplo, nc -q 1 127.0.0.1 3002), não receberá nada

Uma vez que o email é processado, eu registro um timestamp. Este é o log de um único e-mail:

socket destroyed at: Fri Mar 28 2014 05:07:25 GMT-0400 (EDT)

socket destroyed at: Fri Mar 28 2014 05:11:25 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:11:25 GMT-0400 (EDT)

socket destroyed at: Fri Mar 28 2014 05:18:35 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:18:35 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:18:35 GMT-0400 (EDT)

socket destroyed at: Fri Mar 28 2014 05:18:51 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:18:51 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:18:51 GMT-0400 (EDT) socket destroyed at: Fri Mar 28 2014 05:18:51 GMT-0400 (EDT)

Anote o horário destacado. Como você pode ver, ele tenta novamente n + 1 vezes, mas não há tempo limite de nova tentativa fixa.

Por favor, ajude-me a corrigir isso.

    
por Eugene Kostrikov 28.03.2014 / 11:54

0 respostas