On 6/13/2015 5:21 PM, PGNd wrote:
> With config
>
> relay_recipient_maps =
> address_verify_map = ${dbtype}:${datadir}/verify_cache
> address_verify_transport_maps =
> static:relay-remote:[internal.DDDD.com]:25
> relay_transport = relay-remote:[internal.DDDD.com]:10587
>
> remote recipient verification, and subsequent relay, works as expected.
>
> Testing option (2) above, I now periodically rsync
>
> /etc/postfix/valid_email_addresses.lmdb
>
> which contains a generated list of valid users & aliases on the backend, from
> the backend to my frontend.
>
> I'm clear on how to use the local .lmdb _instead_ of remote verification.
>
> Is it possible to use it as a backup/fallback to remote verification? I.e.,
> if remote verification FAILs, additionally check the .lmdb for a match,
> deferring only if there's a FAIL there as well?
>
> If possible, the goal here is to use the faster persistent valid-address DB
> that Postfix is managing anyway, and only refer to the lmdb if there's a FAIL.
>
> Reading
>
> http://www.postfix.org/postconf.5.html#relay_recipient_maps
>
> IIUC, it's either/or. Either = (empty), and uses recipient verification, or
> = (table), which triggers the lookup.
>
Your reading is essentially correct. Postfix does not support "if
this lookup fails, look there instead".
> (2) rsync-ing a simple list of known users from the backend to the frontend
> in/as a regularly postmap'd lmdb table or a no-reload-needed pcre table,
> either replacing, or complementing (not sure yet if that's wise), recipient
> verification
A clarification...
Indexed tables processed with postmap do not require a "postfix
reload"; postfix will automatically notice that the file has changed
and restart the related processes. This is far less disruptive than
a reload.
Postfix does not notice when a PCRE/regexp table has changed, and
will not use the new data until either the processes using the table
restart due to exceeding max use or max idle, or by a "postfix
reload". If you *don't* run "postfix reload", you may see
inconsistent behavior for a while due to different processes using
different versions of the table.
-- Noel Jones