--- postfix-2.2.3/src/smtpd/smtpd.c~ 2005-09-08 15:51:27.479075120 +0200 +++ postfix-2.2.3/src/smtpd/smtpd.c 2005-09-08 17:28:05.934984184 +0200 @@ -2076,8 +2076,11 @@ if (state->err == CLEANUP_STAT_OK) { (void) smtpd_proxy_cmd(state, SMTPD_PROX_WANT_ANY, "."); if (state->err == CLEANUP_STAT_OK && - *STR(state->proxy_buffer) != '2') + *STR(state->proxy_buffer) != '2') { state->err = CLEANUP_STAT_CONT; + smtpd_check_reject(state, MAIL_ERROR_POLICY, + "%s", STR(state->proxy_buffer)); + } } else if (state->err != CLEANUP_STAT_SIZE) { state->err |= CLEANUP_STAT_PROXY; vstring_sprintf(state->proxy_buffer, --- postfix-2.2.3/src/smtpd/smtpd_check.c~ 2005-09-08 15:51:27.482074664 +0200 +++ postfix-2.2.3/src/smtpd/smtpd_check.c 2005-09-08 17:28:05.192097120 +0200 @@ -764,7 +764,7 @@ /* smtpd_check_reject - do the boring things that must be done */ -static int smtpd_check_reject(SMTPD_STATE *state, int error_class, +int smtpd_check_reject(SMTPD_STATE *state, int error_class, char *format,...) { va_list ap; --- postfix-2.2.3/src/smtpd/smtpd_check.h~ 2005-09-08 15:51:27.483074512 +0200 +++ postfix-2.2.3/src/smtpd/smtpd_check.h 2005-09-08 17:29:17.952035928 +0200 @@ -25,6 +25,7 @@ extern char *smtpd_check_data(SMTPD_STATE *); extern char *smtpd_check_eod(SMTPD_STATE *); extern char *smtpd_check_policy(SMTPD_STATE *, char *); +extern int smtpd_check_reject(SMTPD_STATE *state, int error_class, char *format,...); /* LICENSE /* .ad