Postfix mailbox_command + netcat + nodejs

我使用Node.js脚本处理传入的电子邮件,并通过mailbox_command(即:nc 127.0.0.1 3002)通过netcat从Postfixpipe道传输邮件。 节点正在监听端口3002,并在处理电子邮件时调用socket.destroy()。

但是,似乎后缀无法识别该命令成功和重试。 那么,我不确定这是谁导致问题的后缀,这只是一个build议。 一些事实:

  1. 处理电子邮件后,套接字已closures。 否则,12个传入消息之后,节点会警告可能的内存泄漏。 所以我认为netcat退出不会导致这个问题。
  2. 如果我用mailbox_command(使用stdin而不是socket)产生Node进程,然后用代码0退出,postfix不会尝试再次调用mailbox_command。
  3. 如果我为netcat使用-q选项(例如nc -q 1 127.0.0.1 3002),则节点不会收到任何内容

一旦电子邮件处理,我logging一个时间戳。 这是logging一个电子邮件:

套接字销毁于:星期五2014年3月28日05:07:25 GMT-0400(美国东部时间)

套接字销毁于:星期五2014年3月28日05:11:25 GMT-0400(EDT)套接字销毁于:2014年3月28日05:11:25 GMT-0400(美国东部时间)

套接字销毁在星期五2014年3月28日05:18:35 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18:35 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18: 35 GMT-0400(美国东部时间)

套接字销毁在:星期五2014年3月28日05:18:51 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18:51 GMT-0400(EDT)套接字销毁于:星期五2014年3月28日05:18: 51 GMT-0400(EDT)sockets销毁时间:2014年3月28日05:18:51 GMT-0400(美国东部时间)

注意突出时间。 正如你所看到的,它重试n + 1次,但没有固定的重试超时。

请帮我解决这个问题。