> Feb 17 06:18:10 mydomain postfix/smtpd[2619]: NOQUEUE: reject: > RCPT from unknown[209.85.219.177]: 550 5.7.1 Client host rejected: > cannot find your reverse hostname, [209.85.219.177]; > from=<some.per...@gmail.com> to=<m...@mydomain.com> proto=ESMTP > helo=<mail-yb1-f177.google.com>
What you see IS NOT the result of Postfix timeout while it looks up a hostname with the getnameinfo() system library routine. Postfix will reply with 450 if the hostname could not be looked up (which is different from a "DOES NOT EXIST" result), as shown in the code fragment below. Postfix is very careful to avoid making that mistake. More likely your system library (see nsswitch.conf) makes the basic mistake of confusing "lookup error" with "does not exist" (solution: use a better OS), or less likely some DNS resolver is making that mistake (solution: use a better DNS resolver). Wietse static int reject_unknown_reverse_name(SMTPD_STATE *state) { const char *myname = "reject_unknown_reverse_name"; if (msg_verbose) msg_info("%s: %s", myname, state->reverse_name); if (state->reverse_name_status != SMTPD_PEER_CODE_OK) return (smtpd_check_reject(state, MAIL_ERROR_POLICY, state->reverse_name_status == SMTPD_PEER_CODE_PERM ? var_unk_client_code : 450, "4.7.1", "Client host rejected: cannot find your reverse hostname, [%s]", state->addr)); return (SMTPD_CHECK_DUNNO); }