Hi,

it seems the resolver was rewritten (probably in postfix 3.1.x), but
it seems it now uses res_query instead of the res_search which results
in RES_DEFNAMES and RES_DNSRCH not supported with smtp_host_lookup=dns,
example:
# postconf -e "relayhost = [smtp]"
# postconf -e smtp_host_lookup=dns
# postconf -e "smtp_dns_resolver_options = res_defnames, res_dnsrch"

With postfix-3.0.7 (and also postfix 2, e.g. postfix-2.11.3) if there
is SMTP relay smtp.example.com then sending mail through such relay by
e.g. the following command:

# echo hi | sendmail u...@example2.com

works as expected (verbose logging enabled):
postfix/smtp[9569]: smtp_parse_destination: [smtp] smtp
postfix/smtp[9569]: connecting to smtp port 25
postfix/smtp[9569]: smtp_addr_one: host smtp
postfix/smtp[9569]: lookup smtp type A flags 640
postfix/smtp[9569]: dns_query: smtp (A): OK
postfix/smtp[9569]: dns_get_answer: type A for smtp.example.com.

Flags 640 (0x280) are RES_DEFNAMES|RES_DNSRCH, /usr/include/resolv.h:
#define RES_DEFNAMES 0x00000080  /* use default domain name */
#define RES_DNSRCH   0x00000200  /* search up local domain tree */

But the same configuration now doesn't work with postfix 3.1.x+,
e.g. postfix-3.4.8:
postfix/smtp[3285]: smtp_parse_destination: [smtp] smtp
postfix/smtp[3285]: connecting to smtp port 25
postfix/smtp[3285]: smtp_addr_one: host smtp
postfix/smtp[3285]: lookup smtp type A flags RES_DEFNAMES|RES_DNSRCH
postfix/smtp[3285]: dns_query: smtp (A): Host not found

Is this intended? I wasn't able to find any related incompatibility
notice in the documentation

thanks & regards

Jaroslav

Reply via email to