I recently switched from using flat virtual files to using mysql to manage a virtual table.
Email addresses that were set up prior to the switchover can be reached. But emails set up afterwards can't. I added verbose logging to the smtp processes by adding the -v parameter in master.cf With old email addresses set up prior to mysql, the resolve_clnt function seems to recognize that the domain is local, even though it doesn't initially see the email address in the virtual alias table (not sure why) With the new email addresses that are managed by mysql, resolve_clnt doesn't seem to be looking up the email in the virtual table. Instead, it comes back with the host IP address -- this is the relayhost value set in main.cf. Here are the maillog entries for the email set up prior to the mysql switch: [root@miltermatic log]# grep "sbr...@oldvirtualdomain.com" maillog Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: < mail-qc0-f177.google.com[209.85.216.177]: RCPT TO:<sbr...@oldvirtualdomain.com> Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: extract_addr: input: <sbr...@oldvirtualdomain.com> Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: smtpd_check_addr: addr=sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: send attr address = sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: input attribute value: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: rewrite_clnt: local: sbr...@oldvirtualdomain.com -> sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: send attr address = sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: input attribute value: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: resolve_clnt: `' -> `sbr...@oldvirtualdomain.com' -> transp=`error' host=`User unknown in virtual alias table' rcpt=`sbr...@oldvirtualdomain.com' flags= class=alias Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: ctable_locate: install entry key sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: extract_addr: in: <sbr...@oldvirtualdomain.com>, result: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: check_mail_access: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: ctable_locate: move existing entry key sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: check_access: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: reject_unauth_destination: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: permit_auth_destination: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: ctable_locate: leave existing entry key sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: reject_non_fqdn_address: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: reject_unknown_address: sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: ctable_locate: leave existing entry key sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: ctable_locate: leave existing entry key sbr...@oldvirtualdomain.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: maps_find: recipient_canonical_maps: sbr...@oldvirtualdomain.com: not found Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: mail_addr_find: sbr...@oldvirtualdomain.com -> (not found) Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: maps_find: canonical_maps: sbr...@oldvirtualdomain.com: not found Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: mail_addr_find: sbr...@oldvirtualdomain.com -> (not found) Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: maps_find: virtual_alias_maps: mysql:/etc/postfix/mysql-virtual.cf(0,lock|fold_fix): sbr...@oldvirtualdomain.com = scottwb...@yahoo.com Aug 7 17:52:13 miltermatic postfix/smtpd[15169]: mail_addr_find: sbr...@oldvirtualdomain.com -> scottwb...@yahoo.com Aug 7 17:52:14 miltermatic postfix/smtp[13404]: AEE0914A806A: to=<scottwb...@yahoo.com>, orig_to=<sbr...@oldvirtualdomain.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.6, delays=0.61/0/0/0.99, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as BADEC14A8070) here are the maillog entries for the email set up after the mysql switch: [root@miltermatic log]# grep "sbr...@domainaftermysql.com" maillog Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: < mail-qc0-f170.google.com[209.85.216.170]: RCPT TO:<sbr...@domainaftermysql.com> Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: extract_addr: input: <sbr...@domainaftermysql.com> Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: smtpd_check_addr: addr=sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: send attr address = sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: input attribute value: sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: rewrite_clnt: local: sbr...@domainaftermysql.com -> sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: send attr address = sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: input attribute value: sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: resolve_clnt: `' -> `sbr...@domainaftermysql.com' -> transp=`smtp' host=`67.22.105.2' rcpt=`sbr...@domainaftermysql.com' flags= class=default Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: ctable_locate: install entry key sbr...@domainaftermysql.com Aug 7 17:50:03 miltermatic postfix/smtpd[15246]: extract_addr: in: <sbr...@domainaftermysql.com>, result: sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: check_mail_access: sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: ctable_locate: move existing entry key sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: check_access: sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: reject_unauth_destination: sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: permit_auth_destination: sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: ctable_locate: leave existing entry key sbr...@domainaftermysql.com Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: NOQUEUE: reject: RCPT from mail-qc0-f170.google.com[209.85.216.170]: 554 5.7.1 <sbr...@domainaftermysql.com>: Relay access denied; from=<sc...@livecareer.com> to=<sbr...@domainaftermysql.com> proto=ESMTP helo=<mail-qc0-f170.google.com> Aug 7 17:50:04 miltermatic postfix/smtpd[15246]: > mail-qc0-f170.google.com[209.85.216.170]: 554 5.7.1 <sbr...@domainaftermysql.com>: Relay access denied I get "Relay access denied" if I try sending email to that domain from gmail. If I try sending email to that domain with a manual telnet smtp session to localhost port 25 on the machine postfix is running on, it goes through fine: Aug 7 18:08:29 miltermatic postfix/smtpd[15246]: ctable_locate: purge entry key sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: < SERVER9678[127.0.0.1]: rcpt to: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: extract_addr: input: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: smtpd_check_addr: addr=sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: send attr address = sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: input attribute value: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: rewrite_clnt: local: sbr...@domainaftermysql.com -> sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: send attr address = sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: input attribute value: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: resolve_clnt: `' -> `sbr...@domainaftermysql.com' -> transp=`smtp' host=`67.22.105.2' rcpt=`sbr...@domainaftermysql.com' flags= class=default Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: ctable_locate: install entry key sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: extract_addr: in: sbr...@domainaftermysql.com, result: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: check_mail_access: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: ctable_locate: move existing entry key sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: check_access: sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: ctable_locate: leave existing entry key sbr...@domainaftermysql.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: maps_find: recipient_canonical_maps: sbr...@domainaftermysql.com: not found Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: mail_addr_find: sbr...@domainaftermysql.com -> (not found) Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: maps_find: canonical_maps: sbr...@domainaftermysql.com: not found Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: mail_addr_find: sbr...@domainaftermysql.com -> (not found) Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: maps_find: virtual_alias_maps: mysql:/etc/postfix/mysql-virtual.cf(0,lock|fold_fix): sbr...@domainaftermysql.com = scottwb...@yahoo.com Aug 7 18:17:51 miltermatic postfix/smtpd[20072]: mail_addr_find: sbr...@domainaftermysql.com -> scottwb...@yahoo.com Aug 7 18:18:11 miltermatic postfix/smtp[19830]: E8FBA14A8066: to=<scottwb...@yahoo.com>, orig_to=<sbr...@domainaftermysql.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=29, delays=29/0/0/0.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as CACAD14A805F) Any help would be greatly appreciated! Thank you Scott Brown