VERIFY(8)
π NAME π
okay so bestie, let me introduce you to verify β the Postfix address verification server. that's it, that's the name, she's literally the server that keeps track of what addresses are deliverable and which ones are not it. periodt. π
β¨ SYNOPSIS β¨
verify [generic Postfix daemon options]
π¦ DESCRIPTION π¦
so the verify(8) address verification server maintains a record of what recipient addresses are known to be deliverable or undeliverable. like a little gossip database but for mail. π
how does she find out? by injecting probe messages into the Postfix queue. those probe messages get run through all the routing and rewriting machinery except for final delivery, and then they get discarded rather than being deferred or bounced. they literally just vibe, do their little reconnaissance, and evaporate. π«Ά
address verification relies on the answer from the nearest MTA for the specified address, which means it will not detect all undeliverable addresses. no cap. it's giving "best effort" energy.
the verify(8) server is designed to run under control by the Postfix master server. it maintains an optional persistent database. and to avoid being interrupted by "postfix stop" in the middle of a database update, the process runs in a separate process group. she said "don't interrupt my glow-up". π
the verify(8) server implements the following requests:
update address status text
Update the status and text of the specified address.
query address
Look up the status and text for the specified address. If the
status is unknown, a probe is sent and an "in progress" status is
returned.
so update sets the status and text for an address, and query looks them up β but if the status is unknown, a probe goes out and you get an "in progress" status back. she's working on it, be patient. π
π SECURITY π
the address verification server is not security-sensitive. she does not talk to the network, and she does not talk to local users. she's an introvert fr fr. the verify server can run chrooted at fixed low privilege. queen behavior. π
β οΈ but here's the tea: the address verification server can be coerced to store unlimited amounts of garbage. limiting the cache expiry time trades one problem (disk space exhaustion) for another one (poor response time to client requests). pick your struggle, bestie. π
with Postfix version 2.5 and later, the verify(8) server no longer uses root privileges when opening the address_verify_map cache file. the file should now be stored under the Postfix-owned data_directory. as a migration aid, an attempt to open a cache file under a non-Postfix directory is redirected to the Postfix-owned data_directory, and a warning is logged. she'll reroute you, politely, with a note. π
π©Ί DIAGNOSTICS π©Ί
problems and transactions are logged to syslogd(8) or postlogd(8). that's the group chat where all the drama gets posted. π
π BUGS π
okay so, the receipts:
- address verification probe messages add additional traffic to the mail queue.
- recipient verification may cause an increased load on down-stream servers in the case of a dictionary attack or a flood of backscatter bounces.
- sender address verification may cause your site to be denylisted by some providers. yes, for real. π
and the big one: if the persistent database ever gets corrupted, then the world comes to an end and human intervention is needed. this violates a basic Postfix principle. not me reading that at 2am and spiraling π
βοΈ CONFIGURATION PARAMETERS βοΈ
changes tomain.cfare not picked up automatically, becauseverify(8)processes are long-lived. use the command"postfix reload"after a configuration change. she is not refreshing for you, bestie. π
the text below provides only a parameter summary. see postconf(5) for more details including examples.
πΈ PROBE MESSAGE CONTROLS πΈ
address_verify_sender($double_bounce_sender) β the sender address to use in address verification probes; prior to Postfix 2.5 the default was"postmaster".
available with Postfix 2.9 and later:
address_verify_sender_ttl(0s) β the time between changes in the time-dependent portion of address verification probe sender addresses.
π CACHE CONTROLS π
address_verify_map(seepostconf -doutput) β lookup table for persistent address verification status storage.address_verify_positive_expire_time(31d) β the time after which a successful probe expires from the address verification cache.address_verify_positive_refresh_time(7d) β the time after which a successful address verification probe needs to be refreshed.address_verify_negative_cache(yes) β enable caching of failed address verification probe results.address_verify_negative_expire_time(3d) β the time after which a failed probe expires from the address verification cache.address_verify_negative_refresh_time(3h) β the time after which a failed address verification probe needs to be refreshed.
available with Postfix 2.7 and later:
address_verify_cache_cleanup_interval(12h) β the amount of time betweenverify(8)address verification database cleanup runs.
π§ PROBE MESSAGE ROUTING CONTROLS π§
by default, probe messages are delivered via the same route as regular messages. the following parameters can be used to override specific message routing mechanisms. she's got options, she's got range. β¨
address_verify_relayhost($relayhost) β overrides therelayhostparameter setting for address verification probes.address_verify_transport_maps($transport_maps) β overrides thetransport_mapsparameter setting for address verification probes.address_verify_local_transport($local_transport) β overrides thelocal_transportparameter setting for address verification probes.address_verify_virtual_transport($virtual_transport) β overrides thevirtual_transportparameter setting for address verification probes.address_verify_relay_transport($relay_transport) β overrides therelay_transportparameter setting for address verification probes.address_verify_default_transport($default_transport) β overrides thedefault_transportparameter setting for address verification probes.
available in Postfix 2.3 and later:
address_verify_sender_dependent_relayhost_maps($sender_dependent_relayhost_maps) β overrides thesender_dependent_relayhost_mapsparameter setting for address verification probes.
available in Postfix 2.7 and later:
address_verify_sender_dependent_default_transport_maps($sender_dependent_default_transport_maps) β overrides thesender_dependent_default_transport_mapsparameter setting for address verification probes.
π SMTPUTF8 CONTROLS π
preliminary SMTPUTF8 support is introduced with Postfix 3.0.
smtputf8_autodetect_classes(sendmail,verify) β detect that a message requires SMTPUTF8 support for the specified mail origin classes.
available in Postfix version 3.2 and later:
enable_idna2003_compatibility(no) β enable'transitional'compatibility between IDNA2003 and IDNA2008, when converting UTF-8 domain names to/from the ASCII form that is used for DNS lookups.
π MISCELLANEOUS CONTROLS π
config_directory(seepostconf -doutput) β the default location of the Postfixmain.cfandmaster.cfconfiguration files.daemon_timeout(18000s) β how much time a Postfix daemon process may take to handle a request before it is terminated by a built-in watchdog timer.ipc_timeout(3600s) β the time limit for sending or receiving information over an internal communication channel.process_id(read-only) β the process ID of a Postfix command or daemon process.process_name(read-only) β the process name of a Postfix command or daemon process.queue_directory(seepostconf -doutput) β the location of the Postfix top-level queue directory.syslog_facility(mail) β the syslog facility of Postfix logging.syslog_name(seepostconf -doutput) β a prefix that is prepended to the process name in syslog records, so that, for example,"smtpd"becomes"prefix/smtpd".
available in Postfix 3.3 and later:
service_name(read-only) β themaster.cfservice name of a Postfix daemon process.
π SEE ALSO π
smtpd(8), Postfix SMTP servercleanup(8), enqueue Postfix messagepostconf(5), configuration parameterspostlogd(8), Postfix loggingsyslogd(8), system logging
π README FILES π
use "postconf readme_directory" or "postconf html_directory" to locate this information.
ADDRESS_VERIFICATION_README, address verification howto
π LICENSE π
the Secure Mailer license must be distributed with this software.
π°οΈ HISTORY π°οΈ
this service was introduced with Postfix version 2.1. an icon, a legend, a moment. π
π«Ά AUTHOR(S) π«Ά
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA
Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA
and that's the whole page bestie!! π she's from the System Manager's Manual, she goes by VERIFY(8), and she's serving address-verification realness since forever. no date stamp on this one, so just know she's timeless. πβ¨π¦ slay, goodbye, go run postfix reload or whatever π
π¦ where this page comes from
- alpine 3.22: postfix-doc 3.10.13-r0 Β· IPL-1.0 EPL-2.0
- alpine 3.23: postfix-doc 3.10.13-r0 Β· IPL-1.0 EPL-2.0
- alpine 3.24: postfix-doc 3.11.7-r0 Β· IPL-1.0 EPL-2.0
- arch rolling: postfix 3.11.7-1 Β· EPL-2.0 OR IPL-1.0 AND BSD-4-Clause-UC
- centos-stream 10: postfix 2:3.8.5-11.el10 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- debian trixie: postfix 3.10.13-0+deb13u1
- fedora 43: postfix 2:3.10.14-1.fc43 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 43: postfix 2:3.10.3-3.fc43 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 44: postfix 2:3.10.14-1.fc44 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 44: postfix 2:3.10.7-2.fc44 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- nixos 26.05: postfix 3.11.7
- nixpkgs unstable: postfix 3.11.7
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- ubuntu questing: postfix 3.10.2-1ubuntu2
- ubuntu questing: postfix 3.10.2-1ubuntu2.1
- ubuntu resolute: postfix 3.10.6-4ubuntu2
- ubuntu resolute: postfix 3.10.6-4ubuntu2.1
- ubuntu resolute: postfix 3.10.6-4ubuntu2.2
- ubuntu stonking: postfix 3.11.7-1ubuntu2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms