Purushotham Nayak: > Thanks so much for the information! Also, tempfail does work correctly. But > couple of questions though, > > 1. When default action is tempfail and the milter is unavailable, smtpd > sends 451 (Requested action aborted: error in processing). Wonder if there > is a way to send 421 (Service not available, closing transmission channel)
Following the SMTP protocol rules, Postfix does not close connections unless it has to. > and then close the connection. 451 works fine except that some of the > clients keeps retrying for several minutes before giving up and creating a > new connection. If we have a config option to send 421 and close the > connection it might help it be faster. If developer cycles were unlimited, we could make Postfix 100x as complex just to handle all possible client badness. But, we don't have an unlimited budget. > 2. I noticed that when the milter application exits, it sends FIN to smtpd That is incorrect. Milters don't send FIN, and Postfix does not receive FIN. Such signals are sent between the TCP layers of the network stack. The Milter protocol as defined is a half-duplex protocol, meaning that each party waits for its turn to speak. A 'spontaneous' disconnect by one party won't be detected until the other tries to send or receive something. This might be different if there Milters and Postfix were sending packets at each other, but that is not how they work. Wietse