1# This is the input file for automatically generating the postconf(5) 2# manual page, the summaries of parameters in on-line manual pages, 3# and for the postconf.5.html hyperlinked document. 4# 5# The following tools operate on information from this file: 6# 7# xpostconf 8# Extracts specific parameter definitions from this file, or 9# produces a sorted version of all the information in this 10# document. 11# 12# postconf2html 13# Adds parameter name +default headers. The result can be embedded 14# into the postconf.5.html hyperlinked document. 15# 16# postconf2man 17# Converts this file into something that can be embedded into 18# the postconf(5) UNIX-style manual page. This tool knows only 19# a limited subset of HTML as described below. 20# 21# postconf2src 22# Converts this file result into something that can be embedded 23# into Postfix source code files. 24# 25# The subset of HTML that you can use is limited by the postconf2man 26# tool: 27# 28# * Supported HTML elements are: blockquote, ul, li, dl, dt, dd, 29# p, pre, b, i, h, and the escapes for < <= >= >. Sorry, no 30# tables. 31# 32# * HTML elements must be specified in lower case. 33# 34# * Lists cannot be nested. 35# 36# * The postconf2man tool leaves unrecognized HTML in place as a 37# reminder that it is not supported. 38# 39# * Text between <!-- and --> is stripped out. The <!-- and --> 40# must appear on separate lines. 41# 42# * Blank lines are special for postconf2man: it replaces them by 43# a "new paragraph" command. Don't put any blank lines inside 44# <blockquote> text. Instead, put those blank lines between 45# </blockquote> and <blockquote>. 46# 47# * Text after a blank line must start with an HTML element. 48# 49# Also: 50# 51# * All <dt> and <dd>text must be closed with </dt> and </dd>. 52# 53# * Use <blockquote><pre>..</pre></blockquote> for examples 54# between narrative text, instead of indenting examples by hand. 55# 56# * Use <pre>..</pre> for the "Examples:" section at the end 57# of a parameter description. 58# 59# The postlink tool automatically inserts hyperlinks for the following, 60# so you must not hyperlink that information yourself: 61# 62# * Postfix manual pages 63# * URLs 64# * RFCs 65# * Postfix configuration parameters 66# * Postfix README files 67# * Address classes and other terminology. 68# 69# The xpostconf and postconf2html tools expect the file format described 70# in the comments below. The description includes the transformation 71# that is done by the postconf2html tool. 72# 73# * The format of this file is blocks of text separated by one or 74# more empty (or all whitespace) lines. 75# 76# * A text block that begins with %PARAM specifies a parameter name 77# and its default value, separated by whitespace. The text in 78# the blocks that follow is the parameter description. 79# 80# * The first line (text up to the first ". ") is used in Postfix 81# on-line manual pages, in the one-line configuration parameter 82# summaries. 83# 84# * A text block that begins with the "<" character is treated as 85# literal HTML. For example, to specify a "dl" list element one 86# would write: 87# 88# |<dt><b>name</b></dt> <dd> 89# | 90# |text that describes "name". 91# | 92# |</dd> ... 93# 94# As described below, the text that describes "name" will be 95# enclosed with <p> and </p>. 96# 97# An "ul" list element would be written like this: 98# 99# |<li> text for this list element. 100# 101# * Any text block that does not begin with < is an error. 102 103%CLASS address-verification Address verification (Postfix 2.1 and later) 104 105<p> 106Sender/recipient address verification is implemented by sending 107probe email messages that are not actually delivered. This feature 108is requested via the reject_unverified_sender and 109reject_unverified_recipient access restrictions. The status of 110verification probes is maintained by the address verification 111service. See the file ADDRESS_VERIFICATION_README for information 112about how to configure and operate the Postfix sender/recipient 113address verification service. 114</p> 115 116%CLASS smtpd-compatibility Compatibility controls 117 118%CLASS resource-control Resource controls 119 120%CLASS after-queue-filter After-queue content filter 121 122<p> 123As of version 1.0, Postfix can be configured to send new mail to 124an external content filter AFTER the mail is queued. This content 125filter is expected to inject mail back into a (Postfix or other) 126MTA for further delivery. See the FILTER_README document for 127details. 128</p> 129 130%CLASS before-queue-filter Before-queue content filter 131 132<p> 133The Postfix SMTP server can be configured to send incoming mail to 134a real-time SMTP-based content filter BEFORE mail is queued. This 135content filter is expected to inject mail back into Postfix. See 136the SMTPD_PROXY_README document for details on how to configure 137and operate this feature. 138</p> 139 140%CLASS basic-config Basic configuration parameters 141 142%CLASS smtpd-access-relay SMTP server access and relay control 143 144%CLASS smtpd-sasl SMTP server SASL authentication 145 146%CLASS unknown-recipients Rejecting mail for unknown recipients 147 148%CLASS smtpd-reply-code SMTP server response codes 149 150%CLASS other Other configuration parameters 151 152%PARAM access_map_reject_code 554 153 154<p> 155The numerical Postfix SMTP server response code for 156an access(5) map "reject" action. 157</p> 158 159<p> 160Do not change this unless you have a complete understanding of RFC 2821. 161</p> 162 163%PARAM access_map_defer_code 450 164 165<p> 166The numerical Postfix SMTP server response code for 167an access(5) map "defer" action, including "defer_if_permit" 168or "defer_if_reject". Prior to Postfix 2.6, the response 169is hard-coded as "450". 170</p> 171 172<p> 173Do not change this unless you have a complete understanding of RFC 2821. 174</p> 175 176<p> 177This feature is available in Postfix 2.6 and later. 178</p> 179 180%PARAM address_verify_default_transport $default_transport 181 182<p> 183Overrides the default_transport parameter setting for address 184verification probes. 185</p> 186 187<p> 188This feature is available in Postfix 2.1 and later. 189</p> 190 191%PARAM address_verify_local_transport $local_transport 192 193<p> 194Overrides the local_transport parameter setting for address 195verification probes. 196</p> 197 198<p> 199This feature is available in Postfix 2.1 and later. 200</p> 201 202%PARAM address_verify_map see "postconf -d" output 203 204<p> 205Lookup table for persistent address verification status 206storage. The table is maintained by the verify(8) service, and 207is opened before the process releases privileges. 208</p> 209 210<p> 211The lookup table is persistent by default (Postfix 2.7 and later). 212Specify an empty table name to keep the information in volatile 213memory which is lost after "<b>postfix reload</b>" or "<b>postfix 214stop</b>". This is the default with Postfix version 2.6 and earlier. 215</p> 216 217<p> 218Specify a location in a file system that will not fill up. If the 219database becomes corrupted, the world comes to an end. To recover 220delete (NOT: truncate) the file and do "<b>postfix reload</b>". 221</p> 222 223<p> Postfix daemon processes do not use root privileges when opening 224this file (Postfix 2.5 and later). The file must therefore be 225stored under a Postfix-owned directory such as the data_directory. 226As a migration aid, an attempt to open the file under a non-Postfix 227directory is redirected to the Postfix-owned data_directory, and a 228warning is logged. </p> 229 230<p> 231Examples: 232</p> 233 234<pre> 235address_verify_map = hash:/var/db/postfix/verify 236address_verify_map = btree:/var/db/postfix/verify 237</pre> 238 239<p> 240This feature is available in Postfix 2.1 and later. 241</p> 242 243%PARAM address_verify_negative_cache yes 244 245<p> 246Enable caching of failed address verification probe results. When 247this feature is enabled, the cache may pollute quickly with garbage. 248When this feature is disabled, Postfix will generate an address 249probe for every lookup. 250</p> 251 252<p> 253This feature is available in Postfix 2.1 and later. 254</p> 255 256%PARAM address_verify_negative_expire_time 3d 257 258<p> 259The time after which a failed probe expires from the address 260verification cache. 261</p> 262 263<p> 264Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 265</p> 266 267<p> 268This feature is available in Postfix 2.1 and later. 269</p> 270 271%PARAM address_verify_negative_refresh_time 3h 272 273<p> 274The time after which a failed address verification probe needs to 275be refreshed. 276</p> 277 278<p> 279Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 280</p> 281 282<p> 283This feature is available in Postfix 2.1 and later. 284</p> 285 286%PARAM address_verify_cache_cleanup_interval 12h 287 288<p> The amount of time between verify(8) address verification 289database cleanup runs. This feature requires that the database 290supports the "delete" and "sequence" operators. Specify a zero 291interval to disable database cleanup. </p> 292 293<p> After each database cleanup run, the verify(8) daemon logs the 294number of entries that were retained and dropped. A cleanup run is 295logged as "partial" when the daemon terminates early after "<b>postfix 296reload</b>", "<b>postfix stop</b>", or no requests for $max_idle 297seconds. </p> 298 299<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 300(weeks). </p> 301 302<p> This feature is available in Postfix 2.7. </p> 303 304%PARAM address_verify_poll_count normal: 3, overload: 1 305 306<p> 307How many times to query the verify(8) service for the completion 308of an address verification request in progress. 309</p> 310 311<p> By default, the Postfix SMTP server polls the verify(8) service 312up to three times under non-overload conditions, and only once when 313under overload. With Postfix version 2.5 and earlier, the SMTP 314server always polls the verify(8) service up to three times by 315default. </p> 316 317<p> 318Specify 1 to implement a crude form of greylisting, that is, always 319defer the first delivery request for a new address. 320</p> 321 322<p> 323Examples: 324</p> 325 326<pre> 327# Postfix ≤ 2.6 default 328address_verify_poll_count = 3 329# Poor man's greylisting 330address_verify_poll_count = 1 331</pre> 332 333<p> 334This feature is available in Postfix 2.1 and later. 335</p> 336 337%PARAM address_verify_poll_delay 3s 338 339<p> 340The delay between queries for the completion of an address 341verification request in progress. 342</p> 343 344<p> 345The default polling delay is 3 seconds. 346</p> 347 348<p> 349Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 350</p> 351 352<p> 353This feature is available in Postfix 2.1 and later. 354</p> 355 356%PARAM address_verify_positive_expire_time 31d 357 358<p> 359The time after which a successful probe expires from the address 360verification cache. 361</p> 362 363<p> 364Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 365</p> 366 367<p> 368This feature is available in Postfix 2.1 and later. 369</p> 370 371%PARAM address_verify_positive_refresh_time 7d 372 373<p> 374The time after which a successful address verification probe needs 375to be refreshed. The address verification status is not updated 376when the probe fails (optimistic caching). 377</p> 378 379<p> 380Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 381</p> 382 383<p> 384This feature is available in Postfix 2.1 and later. 385</p> 386 387%PARAM address_verify_relay_transport $relay_transport 388 389<p> 390Overrides the relay_transport parameter setting for address 391verification probes. 392</p> 393 394<p> 395This feature is available in Postfix 2.1 and later. 396</p> 397 398%PARAM address_verify_relayhost $relayhost 399 400<p> 401Overrides the relayhost parameter setting for address verification 402probes. This information can be overruled with the transport(5) table. 403</p> 404 405<p> 406This feature is available in Postfix 2.1 and later. 407</p> 408 409%PARAM address_verify_sender $double_bounce_sender 410 411<p> The sender address to use in address verification probes; prior 412to Postfix 2.5 the default was "postmaster". To 413avoid problems with address probes that are sent in response to 414address probes, the Postfix SMTP server excludes the probe sender 415address from all SMTPD access blocks. </p> 416 417<p> 418Specify an empty value (address_verify_sender =) or <> if you want 419to use the null sender address. Beware, some sites reject mail from 420<>, even though RFCs require that such addresses be accepted. 421</p> 422 423<p> 424Examples: 425</p> 426 427<pre> 428address_verify_sender = <> 429address_verify_sender = postmaster@my.domain 430</pre> 431 432<p> 433This feature is available in Postfix 2.1 and later. 434</p> 435 436%PARAM address_verify_transport_maps $transport_maps 437 438<p> 439Overrides the transport_maps parameter setting for address verification 440probes. 441</p> 442 443<p> 444This feature is available in Postfix 2.1 and later. 445</p> 446 447%PARAM address_verify_virtual_transport $virtual_transport 448 449<p> 450Overrides the virtual_transport parameter setting for address 451verification probes. 452</p> 453 454<p> 455This feature is available in Postfix 2.1 and later. 456</p> 457 458%PARAM alias_database see "postconf -d" output 459 460<p> 461The alias databases for local(8) delivery that are updated with 462"<b>newaliases</b>" or with "<b>sendmail -bi</b>". 463</p> 464 465<p> 466This is a separate configuration parameter because not all the 467tables specified with $alias_maps have to be local files. 468</p> 469 470<p> 471Examples: 472</p> 473 474<pre> 475alias_database = hash:/etc/aliases 476alias_database = hash:/etc/mail/aliases 477</pre> 478 479%PARAM alias_maps see "postconf -d" output 480 481<p> 482The alias databases that are used for local(8) delivery. See 483aliases(5) for syntax details. 484</p> 485 486<p> 487The default list is system dependent. On systems with NIS, the 488default is to search the local alias database, then the NIS alias 489database. 490</p> 491 492<p> 493If you change the alias database, run "<b>postalias /etc/aliases</b>" 494(or wherever your system stores the mail alias file), or simply 495run "<b>newaliases</b>" to build the necessary DBM or DB file. 496</p> 497 498<p> 499The local(8) delivery agent disallows regular expression substitution 500of $1 etc. in alias_maps, because that would open a security hole. 501</p> 502 503<p> 504The local(8) delivery agent will silently ignore requests to use 505the proxymap(8) server within alias_maps. Instead it will open the 506table directly. Before Postfix version 2.2, the local(8) delivery 507agent will terminate with a fatal error. 508</p> 509 510<p> 511Examples: 512</p> 513 514<pre> 515alias_maps = hash:/etc/aliases, nis:mail.aliases 516alias_maps = hash:/etc/aliases 517</pre> 518 519%PARAM allow_mail_to_commands alias, forward 520 521<p> 522Restrict local(8) mail delivery to external commands. The default 523is to disallow delivery to "|command" in :include: files (see 524aliases(5) for the text that defines this terminology). 525</p> 526 527<p> 528Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>, 529in order to allow commands in aliases(5), .forward files or in 530:include: files, respectively. 531</p> 532 533<p> 534Example: 535</p> 536 537<pre> 538allow_mail_to_commands = alias,forward,include 539</pre> 540 541%PARAM allow_mail_to_files alias, forward 542 543<p> 544Restrict local(8) mail delivery to external files. The default is 545to disallow "/file/name" destinations in :include: files (see 546aliases(5) for the text that defines this terminology). 547</p> 548 549<p> 550Specify zero or more of: <b>alias</b>, <b>forward</b> or <b>include</b>, 551in order to allow "/file/name" destinations in aliases(5), .forward 552files and in :include: files, respectively. 553</p> 554 555<p> 556Example: 557</p> 558 559<pre> 560allow_mail_to_files = alias,forward,include 561</pre> 562 563%PARAM allow_min_user no 564 565<p> 566Allow a sender or recipient address to have `-' as the first 567character. By 568default, this is not allowed, to avoid accidents with software that 569passes email addresses via the command line. Such software 570would not be able to distinguish a malicious address from a 571bona fide command-line option. Although this can be prevented by 572inserting a "--" option terminator into the command line, this is 573difficult to enforce consistently and globally. </p> 574 575<p> As of Postfix version 2.5, this feature is implemented by 576trivial-rewrite(8). With earlier versions this feature was implemented 577by qmgr(8) and was limited to recipient addresses only. </p> 578 579%PARAM allow_percent_hack yes 580 581<p> 582Enable the rewriting of the form "user%domain" to "user@domain". 583This is enabled by default. 584</p> 585 586<p> Note: with Postfix version 2.2, message header address rewriting 587happens only when one of the following conditions is true: </p> 588 589<ul> 590 591<li> The message is received with the Postfix sendmail(1) command, 592 593<li> The message is received from a network client that matches 594$local_header_rewrite_clients, 595 596<li> The message is received from the network, and the 597remote_header_rewrite_domain parameter specifies a non-empty value. 598 599</ul> 600 601<p> To get the behavior before Postfix version 2.2, specify 602"local_header_rewrite_clients = static:all". </p> 603 604<p> 605Example: 606</p> 607 608<pre> 609allow_percent_hack = no 610</pre> 611 612%PARAM allow_untrusted_routing no 613 614<p> 615Forward mail with sender-specified routing (user[@%!]remote[@%!]site) 616from untrusted clients to destinations matching $relay_domains. 617</p> 618 619<p> 620By default, this feature is turned off. This closes a nasty open 621relay loophole where a backup MX host can be tricked into forwarding 622junk mail to a primary MX host which then spams it out to the world. 623</p> 624 625<p> 626This parameter also controls if non-local addresses with sender-specified 627routing can match Postfix access tables. By default, such addresses 628cannot match Postfix access tables, because the address is ambiguous. 629</p> 630 631%PARAM always_bcc 632 633<p> 634Optional address that receives a "blind carbon copy" of each message 635that is received by the Postfix mail system. 636</p> 637 638<p> 639Note: if mail to the BCC address bounces it will be returned to 640the sender. 641</p> 642 643<p> Note: automatic BCC recipients are produced only for new mail. 644To avoid mailer loops, automatic BCC recipients are not generated 645after Postfix forwards mail internally, or after Postfix generates 646mail itself. </p> 647 648%PARAM berkeley_db_create_buffer_size 16777216 649 650<p> 651The per-table I/O buffer size for programs that create Berkeley DB 652hash or btree tables. Specify a byte count. 653</p> 654 655<p> 656This feature is available in Postfix 2.0 and later. 657</p> 658 659%PARAM berkeley_db_read_buffer_size 131072 660 661<p> 662The per-table I/O buffer size for programs that read Berkeley DB 663hash or btree tables. Specify a byte count. 664</p> 665 666<p> 667This feature is available in Postfix 2.0 and later. 668</p> 669 670%PARAM best_mx_transport 671 672<p> 673Where the Postfix SMTP client should deliver mail when it detects 674a "mail loops back to myself" error condition. This happens when 675the local MTA is the best SMTP mail exchanger for a destination 676not listed in $mydestination, $inet_interfaces, $proxy_interfaces, 677$virtual_alias_domains, or $virtual_mailbox_domains. By default, 678the Postfix SMTP client returns such mail as undeliverable. 679</p> 680 681<p> 682Specify, for example, "best_mx_transport = local" to pass the mail 683from the Postfix SMTP client to the local(8) delivery agent. You 684can specify 685any message delivery "transport" or "transport:nexthop" that is 686defined in the master.cf file. See the transport(5) manual page 687for the syntax and meaning of "transport" or "transport:nexthop". 688</p> 689 690<p> 691However, this feature is expensive because it ties up a Postfix 692SMTP client process while the local(8) delivery agent is doing its 693work. It is more efficient (for Postfix) to list all hosted domains 694in a table or database. 695</p> 696 697%PARAM biff yes 698 699<p> 700Whether or not to use the local biff service. This service sends 701"new mail" notifications to users who have requested new mail 702notification with the UNIX command "biff y". 703</p> 704 705<p> 706For compatibility reasons this feature is on by default. On systems 707with lots of interactive users, the biff service can be a performance 708drain. Specify "biff = no" in main.cf to disable. 709</p> 710 711%PARAM body_checks 712 713<p> Optional lookup tables for content inspection as specified in 714the body_checks(5) manual page. </p> 715 716<p> Note: with Postfix versions before 2.0, these rules inspect 717all content after the primary message headers. </p> 718 719%PARAM body_checks_size_limit 51200 720 721<p> 722How much text in a message body segment (or attachment, if you 723prefer to use that term) is subjected to body_checks inspection. 724The amount of text is limited to avoid scanning huge attachments. 725</p> 726 727<p> 728This feature is available in Postfix 2.0 and later. 729</p> 730 731%PARAM bounce_queue_lifetime 5d 732 733<p> 734The maximal time a bounce message is queued before it is considered 735undeliverable. By default, this is the same as the queue life time 736for regular mail. 737</p> 738 739<p> 740Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 741The default time unit is d (days). 742</p> 743 744<p> 745Specify 0 when mail delivery should be tried only once. 746</p> 747 748<p> 749This feature is available in Postfix 2.1 and later. 750</p> 751 752%PARAM bounce_size_limit 50000 753 754<p> The maximal amount of original message text that is sent in a 755non-delivery notification. Specify a byte count. A message is 756returned as either message/rfc822 (the complete original) or as 757text/rfc822-headers (the headers only). With Postfix version 2.4 758and earlier, a message is always returned as message/rfc822 and is 759truncated when it exceeds the size limit. 760</p> 761 762<p> Notes: </p> 763 764<ul> 765 766<li> <p> If you increase this limit, then you should increase the 767mime_nesting_limit value proportionally. </p> 768 769<li> <p> Be careful when making changes. Excessively large values 770will result in the loss of non-delivery notifications, when a bounce 771message size exceeds a local or remote MTA's message size limit. 772</p> 773 774</ul> 775 776%PARAM canonical_maps 777 778<p> 779Optional address mapping lookup tables for message headers and 780envelopes. The mapping is applied to both sender and recipient 781addresses, in both envelopes and in headers, as controlled 782with the canonical_classes parameter. This is typically used 783to clean up dirty addresses from legacy mail systems, or to replace 784login names by Firstname.Lastname. The table format and lookups 785are documented in canonical(5). For an overview of Postfix address 786manipulations see the ADDRESS_REWRITING_README document. 787</p> 788 789<p> 790If you use this feature, run "<b>postmap /etc/postfix/canonical</b>" to 791build the necessary DBM or DB file after every change. The changes 792will become visible after a minute or so. Use "<b>postfix reload</b>" 793to eliminate the delay. 794</p> 795 796<p> Note: with Postfix version 2.2, message header address mapping 797happens only when message header address rewriting is enabled: </p> 798 799<ul> 800 801<li> The message is received with the Postfix sendmail(1) command, 802 803<li> The message is received from a network client that matches 804$local_header_rewrite_clients, 805 806<li> The message is received from the network, and the 807remote_header_rewrite_domain parameter specifies a non-empty value. 808 809</ul> 810 811<p> To get the behavior before Postfix version 2.2, specify 812"local_header_rewrite_clients = static:all". </p> 813 814<p> 815Examples: 816</p> 817 818<pre> 819canonical_maps = dbm:/etc/postfix/canonical 820canonical_maps = hash:/etc/postfix/canonical 821</pre> 822 823%PARAM canonical_classes envelope_sender, envelope_recipient, header_sender, header_recipient 824 825<p> What addresses are subject to canonical_maps address mapping. 826By default, canonical_maps address mapping is applied to envelope 827sender and recipient addresses, and to header sender and header 828recipient addresses. </p> 829 830<p> Specify one or more of: envelope_sender, envelope_recipient, 831header_sender, header_recipient </p> 832 833<p> This feature is available in Postfix 2.2 and later. </p> 834 835%PARAM sender_canonical_classes envelope_sender, header_sender 836 837<p> What addresses are subject to sender_canonical_maps address 838mapping. By default, sender_canonical_maps address mapping is 839applied to envelope sender addresses, and to header sender addresses. 840</p> 841 842<p> Specify one or more of: envelope_sender, header_sender </p> 843 844<p> This feature is available in Postfix 2.2 and later. </p> 845 846%PARAM recipient_canonical_classes envelope_recipient, header_recipient 847 848<p> What addresses are subject to recipient_canonical_maps address 849mapping. By default, recipient_canonical_maps address mapping is 850applied to envelope recipient addresses, and to header recipient 851addresses. </p> 852 853<p> Specify one or more of: envelope_recipient, header_recipient 854</p> 855 856<p> This feature is available in Postfix 2.2 and later. </p> 857 858%PARAM command_directory see "postconf -d" output 859 860<p> 861The location of all postfix administrative commands. 862</p> 863 864%PARAM command_time_limit 1000s 865 866<p> 867Time limit for delivery to external commands. This limit is used 868by the local(8) delivery agent, and is the default time limit for 869delivery by the pipe(8) delivery agent. 870</p> 871 872<p> 873Note: if you set this time limit to a large value you must update the 874global ipc_timeout parameter as well. 875</p> 876 877%PARAM daemon_directory see "postconf -d" output 878 879<p> 880The directory with Postfix support programs and daemon programs. 881These should not be invoked directly by humans. The directory must 882be owned by root. 883</p> 884 885%PARAM daemon_timeout 18000s 886 887<p> How much time a Postfix daemon process may take to handle a 888request before it is terminated by a built-in watchdog timer. </p> 889 890<p> 891Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 892The default time unit is s (seconds). 893</p> 894 895%PARAM debug_peer_level 2 896 897<p> The increment in verbose logging level when a remote client or 898server matches a pattern in the debug_peer_list parameter. </p> 899 900%PARAM debug_peer_list 901 902<p> Optional list of remote client or server hostname or network 903address patterns that cause the verbose logging level to increase 904by the amount specified in $debug_peer_level. </p> 905 906<p> Specify domain names, network/netmask patterns, "/file/name" 907patterns or "type:table" lookup tables. The right-hand side result 908from "type:table" lookups is ignored. </p> 909 910<p> Pattern matching of domain names is controlled by the 911parent_domain_matches_subdomains parameter. </p> 912 913<p> 914Examples: 915</p> 916 917<pre> 918debug_peer_list = 127.0.0.1 919debug_peer_list = example.com 920</pre> 921 922%PARAM default_database_type see "postconf -d" output 923 924<p> 925The default database type for use in newaliases(1), postalias(1) 926and postmap(1) commands. On many UNIX systems the default type is 927either <b>dbm</b> or <b>hash</b>. The default setting is frozen 928when the Postfix system is built. 929</p> 930 931<p> 932Examples: 933</p> 934 935<pre> 936default_database_type = hash 937default_database_type = dbm 938</pre> 939 940%PARAM default_delivery_slot_cost 5 941 942<p> 943How often the Postfix queue manager's scheduler is allowed to 944preempt delivery of one message with another. 945</p> 946 947<p> 948Each transport maintains a so-called "available delivery slot counter" 949for each message. One message can be preempted by another one when 950the other message can be delivered using no more delivery slots 951(i.e., invocations of delivery agents) than the current message 952counter has accumulated (or will eventually accumulate - see about 953slot loans below). This parameter controls how often is the counter 954incremented - it happens after each default_delivery_slot_cost 955recipients have been delivered. 956</p> 957 958<p> 959The cost of 0 is used to disable the preempting scheduling completely. 960The minimum value the scheduling algorithm can use is 2 - use it 961if you want to maximize the message throughput rate. Although there 962is no maximum, it doesn't make much sense to use values above say 96350. 964</p> 965 966<p> 967The only reason why the value of 2 is not the default is the way 968this parameter affects the delivery of mailing-list mail. In the 969worst case, their delivery can take somewhere between (cost+1/cost) 970and (cost/cost-1) times more than if the preemptive scheduler was 971disabled. The default value of 5 turns out to provide reasonable 972message response times while making sure the mailing-list deliveries 973are not extended by more than 20-25 percent even in the worst case. 974</p> 975 976<p> Use <i>transport</i>_delivery_slot_cost to specify a 977transport-specific override, where <i>transport</i> is the master.cf 978name of the message delivery transport. 979</p> 980 981<p> 982Examples: 983</p> 984 985<pre> 986default_delivery_slot_cost = 0 987default_delivery_slot_cost = 2 988</pre> 989 990%PARAM default_destination_concurrency_limit 20 991 992<p> 993The default maximal number of parallel deliveries to the same 994destination. This is the default limit for delivery via the lmtp(8), 995pipe(8), smtp(8) and virtual(8) delivery agents. 996With per-destination recipient limit > 1, a destination is a domain, 997otherwise it is a recipient. 998</p> 999 1000<p> Use <i>transport</i>_destination_concurrency_limit to specify a 1001transport-specific override, where <i>transport</i> is the master.cf 1002name of the message delivery transport. 1003</p> 1004 1005%PARAM default_destination_recipient_limit 50 1006 1007<p> 1008The default maximal number of recipients per message delivery. 1009This is the default limit for delivery via the lmtp(8), pipe(8), 1010smtp(8) and virtual(8) delivery agents. 1011</p> 1012 1013<p> Setting this parameter to a value of 1 changes the meaning of 1014the corresponding per-destination concurrency limit from concurrency 1015per domain into concurrency per recipient. </p> 1016 1017<p> Use <i>transport</i>_destination_recipient_limit to specify a 1018transport-specific override, where <i>transport</i> is the master.cf 1019name of the message delivery transport. 1020</p> 1021 1022%PARAM default_extra_recipient_limit 1000 1023 1024<p> 1025The default value for the extra per-transport limit imposed on the 1026number of in-memory recipients. This extra recipient space is 1027reserved for the cases when the Postfix queue manager's scheduler 1028preempts one message with another and suddenly needs some extra 1029recipients slots for the chosen message in order to avoid performance 1030degradation. 1031</p> 1032 1033<p> Use <i>transport</i>_extra_recipient_limit to specify a 1034transport-specific override, where <i>transport</i> is the master.cf 1035name of the message delivery transport. 1036</p> 1037 1038%PARAM default_minimum_delivery_slots 3 1039 1040<p> 1041How many recipients a message must have in order to invoke the 1042Postfix queue manager's scheduling algorithm at all. Messages 1043which would never accumulate at least this many delivery slots 1044(subject to slot cost parameter as well) are never preempted. 1045</p> 1046 1047<p> Use <i>transport</i>_minimum_delivery_slots to specify a 1048transport-specific override, where <i>transport</i> is the master.cf 1049name of the message delivery transport. 1050</p> 1051 1052%PARAM default_privs nobody 1053 1054<p> 1055The default rights used by the local(8) delivery agent for delivery 1056to external file or command. These rights are used when delivery 1057is requested from an aliases(5) file that is owned by <b>root</b>, or 1058when delivery is done on behalf of <b>root</b>. <b>DO NOT SPECIFY A 1059PRIVILEGED USER OR THE POSTFIX OWNER</b>. 1060</p> 1061 1062%PARAM default_process_limit 100 1063 1064<p> 1065The default maximal number of Postfix child processes that provide 1066a given service. This limit can be overruled for specific services 1067in the master.cf file. 1068</p> 1069 1070%PARAM default_rbl_reply see "postconf -d" output 1071 1072<p> 1073The default Postfix SMTP server response template for a request that is 1074rejected by an RBL-based restriction. This template can be overruled 1075by specific entries in the optional rbl_reply_maps lookup table. 1076</p> 1077 1078<p> 1079This feature is available in Postfix 2.0 and later. 1080</p> 1081 1082<p> 1083The template is subject to exactly one level of $name substitution: 1084</p> 1085 1086<dl> 1087 1088<dt><b>$client</b></dt> 1089 1090<dd>The client hostname and IP address, formatted as name[address]. </dd> 1091 1092<dt><b>$client_address</b></dt> 1093 1094<dd>The client IP address. </dd> 1095 1096<dt><b>$client_name</b></dt> 1097 1098<dd>The client hostname or "unknown". See reject_unknown_client_hostname 1099for more details. </dd> 1100 1101<dt><b>$reverse_client_name</b></dt> 1102 1103<dd>The client hostname from address->name lookup, or "unknown". 1104See reject_unknown_reverse_client_hostname for more details. </dd> 1105 1106#<dt><b>$forward_client_name</b></dt> 1107# 1108#<dd>The client hostname from address->name lookup followed by 1109#name->address lookup, or "unknown". See 1110#reject_unknown_forward_client_hostname for more details. </dd> 1111 1112<dt><b>$helo_name</b></dt> 1113 1114<dd>The hostname given in HELO or EHLO command or empty string. </dd> 1115 1116<dt><b>$rbl_class</b></dt> 1117 1118<dd>The blacklisted entity type: Client host, Helo command, Sender 1119address, or Recipient address. </dd> 1120 1121<dt><b>$rbl_code</b></dt> 1122 1123<dd>The numerical SMTP response code, as specified with the 1124maps_rbl_reject_code configuration parameter. Note: The numerical 1125SMTP response code is required, and must appear at the start of the 1126reply. With Postfix version 2.3 and later this information may be followed 1127by an RFC 3463 enhanced status code. </dd> 1128 1129<dt><b>$rbl_domain</b></dt> 1130 1131<dd>The RBL domain where $rbl_what is blacklisted. </dd> 1132 1133<dt><b>$rbl_reason</b></dt> 1134 1135<dd>The reason why $rbl_what is blacklisted, or an empty string. </dd> 1136 1137<dt><b>$rbl_what</b></dt> 1138 1139<dd>The entity that is blacklisted (an IP address, a hostname, a domain 1140name, or an email address whose domain was blacklisted). </dd> 1141 1142<dt><b>$recipient</b></dt> 1143 1144<dd>The recipient address or <> in case of the null address. </dd> 1145 1146<dt><b>$recipient_domain</b></dt> 1147 1148<dd>The recipient domain or empty string. </dd> 1149 1150<dt><b>$recipient_name</b></dt> 1151 1152<dd>The recipient address localpart or <> in case of null address. </dd> 1153 1154<dt><b>$sender</b></dt> 1155 1156<dd>The sender address or <> in case of the null address. </dd> 1157 1158<dt><b>$sender_domain</b></dt> 1159 1160<dd>The sender domain or empty string. </dd> 1161 1162<dt><b>$sender_name</b></dt> 1163 1164<dd>The sender address localpart or <> in case of the null address. </dd> 1165 1166<dt><b>${name?text}</b></dt> 1167 1168<dd>Expands to `text' if $name is not empty. </dd> 1169 1170<dt><b>${name:text}</b></dt> 1171 1172<dd>Expands to `text' if $name is empty. </dd> 1173 1174</dl> 1175 1176<p> 1177Instead of $name you can also specify ${name} or $(name). 1178</p> 1179 1180<p> Note: when an enhanced status code is specified in an RBL reply 1181template, it is subject to modification. The following transformations 1182are needed when the same RBL reply template is used for client, 1183helo, sender, or recipient access restrictions. </p> 1184 1185<ul> 1186 1187<li> <p> When rejecting a sender address, the Postfix SMTP server 1188will transform a recipient DSN status (e.g., 4.1.1-4.1.6) into the 1189corresponding sender DSN status, and vice versa. </p> 1190 1191<li> <p> When rejecting non-address information (such as the HELO 1192command argument or the client hostname/address), the Postfix SMTP 1193server will transform a sender or recipient DSN status into a generic 1194non-address DSN status (e.g., 4.0.0). </p> 1195 1196</ul> 1197 1198%PARAM smtpd_expansion_filter see "postconf -d" output 1199 1200<p> 1201The smtpd_expansion_filter configuration parameter controls what 1202characters may appear in $name expansions. 1203</p> 1204 1205%PARAM default_recipient_limit 20000 1206 1207<p> 1208The default per-transport upper limit on the number of in-memory 1209recipients. These limits take priority over the global 1210qmgr_message_recipient_limit after the message has been assigned 1211to the respective transports. See also default_extra_recipient_limit 1212and qmgr_message_recipient_minimum. 1213</p> 1214 1215<p> Use <i>transport</i>_recipient_limit to specify a 1216transport-specific override, where <i>transport</i> is the master.cf 1217name of the message delivery transport. 1218</p> 1219 1220%PARAM default_recipient_refill_limit 100 1221 1222<p> 1223The default per-transport limit on the number of recipients refilled at 1224once. When not all message recipients fit into the memory at once, keep 1225loading more of them in batches of at least this many at a time. See also 1226$default_recipient_refill_delay, which may result in recipient batches 1227lower than this when this limit is too high for too slow deliveries. 1228</p> 1229 1230<p> Use <i>transport</i>_recipient_refill_limit to specify a 1231transport-specific override, where <i>transport</i> is the master.cf 1232name of the message delivery transport. 1233</p> 1234 1235<p> This feature is available in Postfix 2.4 and later. </p> 1236 1237%PARAM default_recipient_refill_delay 5s 1238 1239<p> 1240The default per-transport maximum delay between recipients refills. 1241When not all message recipients fit into the memory at once, keep loading 1242more of them at least once every this many seconds. This is used to 1243make sure the recipients are refilled in timely manner even when 1244$default_recipient_refill_limit is too high for too slow deliveries. 1245</p> 1246 1247<p> Use <i>transport</i>_recipient_refill_delay to specify a 1248transport-specific override, where <i>transport</i> is the master.cf 1249name of the message delivery transport. 1250</p> 1251 1252<p> This feature is available in Postfix 2.4 and later. </p> 1253 1254%PARAM default_transport smtp 1255 1256<p> 1257The default mail delivery transport and next-hop destination for 1258destinations that do not match $mydestination, $inet_interfaces, 1259$proxy_interfaces, $virtual_alias_domains, $virtual_mailbox_domains, 1260or $relay_domains. This information can be overruled with the 1261sender_dependent_default_transport_maps parameter and with the 1262transport(5) table. </p> 1263 1264<p> 1265In order of decreasing precedence, the nexthop destination is taken 1266from $sender_dependent_default_transport_maps, $default_transport, 1267$sender_dependent_relayhost_maps, $relayhost, or from the recipient 1268domain. 1269</p> 1270 1271<p> 1272Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i> 1273is the name of a mail delivery transport defined in master.cf. 1274The <i>:nexthop</i> destination is optional; its syntax is documented 1275in the manual page of the corresponding delivery agent. 1276</p> 1277 1278<p> 1279Example: 1280</p> 1281 1282<pre> 1283default_transport = uucp:relayhostname 1284</pre> 1285 1286%PARAM defer_code 450 1287 1288<p> 1289The numerical Postfix SMTP server response code when a remote SMTP 1290client request is rejected by the "defer" restriction. 1291</p> 1292 1293<p> 1294Do not change this unless you have a complete understanding of RFC 2821. 1295</p> 1296 1297%PARAM defer_transports 1298 1299<p> 1300The names of message delivery transports that should not deliver mail 1301unless someone issues "<b>sendmail -q</b>" or equivalent. Specify zero 1302or more names of mail delivery transports names that appear in the 1303first field of master.cf. 1304</p> 1305 1306<p> 1307Example: 1308</p> 1309 1310<pre> 1311defer_transports = smtp 1312</pre> 1313 1314%PARAM deliver_lock_attempts 20 1315 1316<p> 1317The maximal number of attempts to acquire an exclusive lock on a 1318mailbox file or bounce(8) logfile. 1319</p> 1320 1321%PARAM deliver_lock_delay 1s 1322 1323<p> 1324The time between attempts to acquire an exclusive lock on a mailbox 1325file or bounce(8) logfile. 1326</p> 1327 1328<p> 1329Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 1330The default time unit is s (seconds). 1331</p> 1332 1333%PARAM disable_vrfy_command no 1334 1335<p> 1336Disable the SMTP VRFY command. This stops some techniques used to 1337harvest email addresses. 1338</p> 1339 1340<p> 1341Example: 1342</p> 1343 1344<pre> 1345disable_vrfy_command = no 1346</pre> 1347 1348%PARAM double_bounce_sender double-bounce 1349 1350<p> The sender address of postmaster notifications that are generated 1351by the mail system. All mail to this address is silently discarded, 1352in order to terminate mail bounce loops. </p> 1353 1354%PARAM duplicate_filter_limit 1000 1355 1356<p> The maximal number of addresses remembered by the address 1357duplicate filter for aliases(5) or virtual(5) alias expansion, or 1358for showq(8) queue displays. </p> 1359 1360%PARAM enable_original_recipient yes 1361 1362<p> Enable support for the X-Original-To message header. This header 1363is needed for multi-recipient mailboxes. </p> 1364 1365<p> When this parameter is set to yes, the cleanup(8) daemon performs 1366duplicate elimination on distinct pairs of (original recipient, 1367rewritten recipient), and generates non-empty original recipient 1368queue file records. </p> 1369 1370<p> When this parameter is set to no, the cleanup(8) daemon performs 1371duplicate elimination on the rewritten recipient address only, and 1372generates empty original recipient queue file records. </p> 1373 1374<p> This feature is available in Postfix 2.1 and later. With Postfix 1375version 2.0, support for the X-Original-To message header is always turned 1376on. Postfix versions before 2.0 have no support for the X-Original-To 1377message header. </p> 1378 1379%PARAM export_environment see "postconf -d" output 1380 1381<p> 1382The list of environment variables that a Postfix process will export 1383to non-Postfix processes. The TZ variable is needed for sane 1384time keeping on System-V-ish systems. 1385</p> 1386 1387<p> 1388Specify a list of names and/or name=value pairs, separated by 1389whitespace or comma. The name=value form is supported with 1390Postfix version 2.1 and later. 1391</p> 1392 1393<p> 1394Example: 1395</p> 1396 1397<pre> 1398export_environment = TZ PATH=/bin:/usr/bin 1399</pre> 1400 1401%PARAM smtp_fallback_relay $fallback_relay 1402 1403<p> 1404Optional list of relay hosts for SMTP destinations that can't be 1405found or that are unreachable. With Postfix 2.2 and earlier this 1406parameter is called fallback_relay. </p> 1407 1408<p> 1409By default, mail is returned to the sender when a destination is 1410not found, and delivery is deferred when a destination is unreachable. 1411</p> 1412 1413<p> The fallback relays must be SMTP destinations. Specify a domain, 1414host, host:port, [host]:port, [address] or [address]:port; the form 1415[host] turns off MX lookups. If you specify multiple SMTP 1416destinations, Postfix will try them in the specified order. </p> 1417 1418<p> To prevent mailer loops between MX hosts and fall-back hosts, 1419Postfix version 2.2 and later will not use the fallback relays for 1420destinations that it is MX host for (assuming DNS lookup is turned on). 1421</p> 1422 1423%PARAM fallback_relay 1424 1425<p> 1426Optional list of relay hosts for SMTP destinations that can't be 1427found or that are unreachable. With Postfix 2.3 this parameter 1428is renamed to smtp_fallback_relay. </p> 1429 1430<p> 1431By default, mail is returned to the sender when a destination is 1432not found, and delivery is deferred when a destination is unreachable. 1433</p> 1434 1435<p> The fallback relays must be SMTP destinations. Specify a domain, 1436host, host:port, [host]:port, [address] or [address]:port; the form 1437[host] turns off MX lookups. If you specify multiple SMTP 1438destinations, Postfix will try them in the specified order. </p> 1439 1440<p> Note: before Postfix 2.2, do not use the fallback_relay feature 1441when relaying mail 1442for a backup or primary MX domain. Mail would loop between the 1443Postfix MX host and the fallback_relay host when the final destination 1444is unavailable. </p> 1445 1446<ul> 1447 1448<li> In main.cf specify "relay_transport = relay", 1449 1450<li> In master.cf specify "-o fallback_relay =" (i.e., empty) at 1451the end of the <tt>relay</tt> entry. 1452 1453<li> In transport maps, specify "relay:<i>nexthop...</i>" 1454as the right-hand side for backup or primary MX domain entries. 1455 1456</ul> 1457 1458<p> Postfix version 2.2 and later will not use the fallback_relay feature 1459for destinations that it is MX host for. 1460</p> 1461 1462%PARAM fast_flush_domains $relay_domains 1463 1464<p> 1465Optional list of destinations that are eligible for per-destination 1466logfiles with mail that is queued to those destinations. 1467</p> 1468 1469<p> 1470By default, Postfix maintains "fast flush" logfiles only for 1471destinations that the Postfix SMTP server is willing to relay to 1472(i.e. the default is: "fast_flush_domains = $relay_domains"; see 1473the relay_domains parameter in the postconf(5) manual). 1474</p> 1475 1476<p> Specify a list of hosts or domains, "/file/name" patterns or 1477"type:table" lookup tables, separated by commas and/or whitespace. 1478Continue long lines by starting the next line with whitespace. A 1479"/file/name" pattern is replaced by its contents; a "type:table" 1480lookup table is matched when the domain or its parent domain appears 1481as lookup key. </p> 1482 1483<p> 1484Specify "fast_flush_domains =" (i.e., empty) to disable the feature 1485altogether. 1486</p> 1487 1488%PARAM fast_flush_purge_time 7d 1489 1490<p> 1491The time after which an empty per-destination "fast flush" logfile 1492is deleted. 1493</p> 1494 1495<p> 1496You can specify the time as a number, or as a number followed by 1497a letter that indicates the time unit: s=seconds, m=minutes, h=hours, 1498d=days, w=weeks. The default time unit is days. 1499</p> 1500 1501%PARAM fast_flush_refresh_time 12h 1502 1503<p> 1504The time after which a non-empty but unread per-destination "fast 1505flush" logfile needs to be refreshed. The contents of a logfile 1506are refreshed by requesting delivery of all messages listed in the 1507logfile. 1508</p> 1509 1510<p> 1511You can specify the time as a number, or as a number followed by 1512a letter that indicates the time unit: s=seconds, m=minutes, h=hours, 1513d=days, w=weeks. The default time unit is hours. 1514</p> 1515 1516%PARAM fork_attempts 5 1517 1518<p> The maximal number of attempts to fork() a child process. </p> 1519 1520%PARAM fork_delay 1s 1521 1522<p> The delay between attempts to fork() a child process. </p> 1523 1524<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 1525(weeks). The default time unit is s (seconds). </p> 1526 1527%PARAM execution_directory_expansion_filter see "postconf -d" output 1528 1529<p> Restrict the characters that the local(8) delivery agent allows 1530in $name expansions of $command_execution_directory. Characters 1531outside the allowed set are replaced by underscores. </p> 1532 1533<p> This feature is available in Postfix 2.2 and later. </p> 1534 1535%PARAM command_execution_directory 1536 1537<p> The local(8) delivery agent working directory for delivery to 1538external command. Failure to change directory causes the delivery 1539to be deferred. </p> 1540 1541<p> The following $name expansions are done on command_execution_directory 1542before the directory is changed. Expansion happens in the context 1543of the delivery request. The result of $name expansion is filtered 1544with the character set that is specified with the 1545execution_directory_expansion_filter parameter. </p> 1546 1547<dl> 1548 1549<dt><b>$user</b></dt> 1550 1551<dd>The recipient's username. </dd> 1552 1553<dt><b>$shell</b></dt> 1554 1555<dd>The recipient's login shell pathname. </dd> 1556 1557<dt><b>$home</b></dt> 1558 1559<dd>The recipient's home directory. </dd> 1560 1561<dt><b>$recipient</b></dt> 1562 1563<dd>The full recipient address. </dd> 1564 1565<dt><b>$extension</b></dt> 1566 1567<dd>The optional recipient address extension. </dd> 1568 1569<dt><b>$domain</b></dt> 1570 1571<dd>The recipient domain. </dd> 1572 1573<dt><b>$local</b></dt> 1574 1575<dd>The entire recipient localpart. </dd> 1576 1577<dt><b>$recipient_delimiter</b></dt> 1578 1579<dd>The system-wide recipient address extension delimiter. </dd> 1580 1581<dt><b>${name?value}</b></dt> 1582 1583<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd> 1584 1585<dt><b>${name:value}</b></dt> 1586 1587<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd> 1588 1589</dl> 1590 1591<p> 1592Instead of $name you can also specify ${name} or $(name). 1593</p> 1594 1595<p> This feature is available in Postfix 2.2 and later. </p> 1596 1597%PARAM forward_path see "postconf -d" output 1598 1599<p> The local(8) delivery agent search list for finding a .forward 1600file with user-specified delivery methods. The first file that is 1601found is used. </p> 1602 1603<p> The following $name expansions are done on forward_path before 1604the search actually happens. The result of $name expansion is 1605filtered with the character set that is specified with the 1606forward_expansion_filter parameter. </p> 1607 1608<dl> 1609 1610<dt><b>$user</b></dt> 1611 1612<dd>The recipient's username. </dd> 1613 1614<dt><b>$shell</b></dt> 1615 1616<dd>The recipient's login shell pathname. </dd> 1617 1618<dt><b>$home</b></dt> 1619 1620<dd>The recipient's home directory. </dd> 1621 1622<dt><b>$recipient</b></dt> 1623 1624<dd>The full recipient address. </dd> 1625 1626<dt><b>$extension</b></dt> 1627 1628<dd>The optional recipient address extension. </dd> 1629 1630<dt><b>$domain</b></dt> 1631 1632<dd>The recipient domain. </dd> 1633 1634<dt><b>$local</b></dt> 1635 1636<dd>The entire recipient localpart. </dd> 1637 1638<dt><b>$recipient_delimiter</b></dt> 1639 1640<dd>The system-wide recipient address extension delimiter. </dd> 1641 1642<dt><b>${name?value}</b></dt> 1643 1644<dd>Expands to <i>value</i> when <i>$name</i> is non-empty. </dd> 1645 1646<dt><b>${name:value}</b></dt> 1647 1648<dd>Expands to <i>value</i> when <i>$name</i> is empty. </dd> 1649 1650</dl> 1651 1652<p> 1653Instead of $name you can also specify ${name} or $(name). 1654</p> 1655 1656<p> 1657Examples: 1658</p> 1659 1660<pre> 1661forward_path = /var/forward/$user 1662forward_path = 1663 /var/forward/$user/.forward$recipient_delimiter$extension, 1664 /var/forward/$user/.forward 1665</pre> 1666 1667%CLASS queue-hashing Queue directory hashing 1668 1669<p> 1670Queue directory hashing is a performance feature. Splitting one 1671queue directory across multiple subdirectory levels can speed up 1672file access by reducing the number of files per directory. 1673</p> 1674 1675<p> 1676Unfortunately, deeply hashing the incoming or deferred queue can 1677actually slow down the mail system (with a depth of 2, mailq with 1678an empty queue can take several seconds). 1679</p> 1680 1681<p> 1682Hashing must NOT be used with a world-writable maildrop directory. 1683Hashing MUST be used for the defer logfile directory, to avoid poor 1684performance when handling lots of deferred mail. 1685</p> 1686 1687%PARAM hash_queue_depth 1 1688 1689<p> 1690The number of subdirectory levels for queue directories listed with 1691the hash_queue_names parameter. Queue hashing is implemented by 1692creating one or more levels of directories with one-character names. 1693Originally, these directory names were equal to the first characters 1694of the queue file name, with the hexadecimal representation of the 1695file creation time in microseconds. </p> 1696 1697<p> With long queue file names, queue hashing produces the same 1698results as with short names. The file creation time in microseconds 1699is converted into hexadecimal form before the result is used for 1700queue hashing. The base 16 encoding gives finer control over the 1701number of subdirectories than is possible with the base 52 encoding 1702of long queue file names. </p> 1703 1704<p> 1705After changing the hash_queue_names or hash_queue_depth parameter, 1706execute the command "<b>postfix reload</b>". 1707</p> 1708 1709%PARAM hash_queue_names deferred, defer 1710 1711<p> 1712The names of queue directories that are split across multiple 1713subdirectory levels. 1714</p> 1715 1716<p> Before Postfix version 2.2, the default list of hashed queues 1717was significantly larger. Claims about improvements in file system 1718technology suggest that hashing of the incoming and active queues 1719is no longer needed. Fewer hashed directories speed up the time 1720needed to restart Postfix. </p> 1721 1722<p> 1723After changing the hash_queue_names or hash_queue_depth parameter, 1724execute the command "<b>postfix reload</b>". 1725</p> 1726 1727%CLASS headerbody-checks Content inspection built-in features 1728 1729<p> 1730The Postfix cleanup(8) server has a limited ability to inspect 1731message headers and body content for signs of trouble. This is not 1732meant to be a substitute for content filters that do complex 1733processing such attachment decoding and unzipping. 1734</p> 1735 1736%PARAM header_checks 1737 1738<p> 1739Optional lookup tables for content inspection of primary non-MIME 1740message headers, as specified in the header_checks(5) manual page. 1741</p> 1742 1743%PARAM header_size_limit 102400 1744 1745<p> 1746The maximal amount of memory in bytes for storing a message header. 1747If a header is larger, the excess is discarded. The limit is 1748enforced by the cleanup(8) server. 1749</p> 1750 1751%PARAM home_mailbox 1752 1753<p> 1754Optional pathname of a mailbox file relative to a local(8) user's 1755home directory. 1756</p> 1757 1758<p> 1759Specify a pathname ending in "/" for qmail-style delivery. 1760</p> 1761 1762<p> The precedence of local(8) delivery features from high to low 1763is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 1764mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 1765fallback_transport_maps, fallback_transport and luser_relay. </p> 1766 1767<p> 1768Examples: 1769</p> 1770 1771<pre> 1772home_mailbox = Mailbox 1773home_mailbox = Maildir/ 1774</pre> 1775 1776%PARAM hopcount_limit 50 1777 1778<p> 1779The maximal number of Received: message headers that is allowed 1780in the primary message headers. A message that exceeds the limit 1781is bounced, in order to stop a mailer loop. 1782</p> 1783 1784%PARAM ignore_mx_lookup_error no 1785 1786<p> Ignore DNS MX lookups that produce no response. By default, 1787the Postfix SMTP client defers delivery and tries again after some 1788delay. This behavior is required by the SMTP standard. </p> 1789 1790<p> 1791Specify "ignore_mx_lookup_error = yes" to force a DNS A record 1792lookup instead. This violates the SMTP standard and can result in 1793mis-delivery of mail. 1794</p> 1795 1796%PARAM import_environment see "postconf -d" output 1797 1798<p> 1799The list of environment parameters that a Postfix process will 1800import from a non-Postfix parent process. Examples of relevant 1801parameters: 1802</p> 1803 1804<dl> 1805 1806<dt><b>TZ</b></dt> 1807 1808<dd>Needed for sane time keeping on most System-V-ish systems. </dd> 1809 1810<dt><b>DISPLAY</b></dt> 1811 1812<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd> 1813 1814<dt><b>XAUTHORITY</b></dt> 1815 1816<dd>Needed for debugging Postfix daemons with an X-windows debugger. </dd> 1817 1818<dt><b>MAIL_CONFIG</b></dt> 1819 1820<dd>Needed to make "<b>postfix -c</b>" work. </dd> 1821 1822</dl> 1823 1824<p> Specify a list of names and/or name=value pairs, separated by 1825whitespace or comma. The name=value form is supported with 1826Postfix version 2.1 and later. </p> 1827 1828%PARAM in_flow_delay 1s 1829 1830<p> Time to pause before accepting a new message, when the message 1831arrival rate exceeds the message delivery rate. This feature is 1832turned on by default (it's disabled on SCO UNIX due to an SCO bug). 1833</p> 1834 1835<p> 1836With the default 100 Postfix SMTP server process limit, "in_flow_delay 1837= 1s" limits the mail inflow to 100 messages per second above the 1838number of messages delivered per second. 1839</p> 1840 1841<p> 1842Specify 0 to disable the feature. Valid delays are 0..10. 1843</p> 1844 1845%PARAM inet_interfaces all 1846 1847<p> The network interface addresses that this mail system receives 1848mail on. Specify "all" to receive mail on all network 1849interfaces (default), and "loopback-only" to receive mail 1850on loopback network interfaces only (Postfix version 2.2 and later). The 1851parameter also controls delivery of mail to <tt>user@[ip.address]</tt>. 1852</p> 1853 1854<p> 1855Note 1: you need to stop and start Postfix when this parameter changes. 1856</p> 1857 1858<p> Note 2: address information may be enclosed inside <tt>[]</tt>, 1859but this form is not required here. </p> 1860 1861<p> When inet_interfaces specifies just one IPv4 and/or IPv6 address 1862that is not a loopback address, the Postfix SMTP client will use 1863this address as the IP source address for outbound mail. Support 1864for IPv6 is available in Postfix version 2.2 and later. </p> 1865 1866<p> 1867On a multi-homed firewall with separate Postfix instances listening on the 1868"inside" and "outside" interfaces, this can prevent each instance from 1869being able to reach remote SMTP servers on the "other side" of the 1870firewall. Setting 1871smtp_bind_address to 0.0.0.0 avoids the potential problem for 1872IPv4, and setting smtp_bind_address6 to :: solves the problem 1873for IPv6. </p> 1874 1875<p> 1876A better solution for multi-homed firewalls is to leave inet_interfaces 1877at the default value and instead use explicit IP addresses in 1878the master.cf SMTP server definitions. This preserves the Postfix 1879SMTP client's 1880loop detection, by ensuring that each side of the firewall knows that the 1881other IP address is still the same host. Setting $inet_interfaces to a 1882single IPv4 and/or IPV6 address is primarily useful with virtual 1883hosting of domains on 1884secondary IP addresses, when each IP address serves a different domain 1885(and has a different $myhostname setting). </p> 1886 1887<p> 1888See also the proxy_interfaces parameter, for network addresses that 1889are forwarded to Postfix by way of a proxy or address translator. 1890</p> 1891 1892<p> 1893Examples: 1894</p> 1895 1896<pre> 1897inet_interfaces = all (DEFAULT) 1898inet_interfaces = loopback-only (Postfix version 2.2 and later) 1899inet_interfaces = 127.0.0.1 1900inet_interfaces = 127.0.0.1, [::1] (Postfix version 2.2 and later) 1901inet_interfaces = 192.168.1.2, 127.0.0.1 1902</pre> 1903 1904%PARAM inet_protocols all 1905 1906<p> The Internet protocols Postfix will attempt to use when making 1907or accepting connections. Specify one or more of "ipv4" 1908or "ipv6", separated by whitespace or commas. The form 1909"all" is equivalent to "ipv4, ipv6" or "ipv4", depending 1910on whether the operating system implements IPv6. </p> 1911 1912<p> With Postfix 2.8 and earlier the default is "ipv4". For backwards 1913compatibility with these releases, the Postfix 2.9 and later upgrade 1914procedure appends an explicit "inet_protocols = ipv4" setting to 1915main.cf when no explicit setting is present. This compatibility 1916workaround will be phased out as IPv6 deployment becomes more common. 1917</p> 1918 1919<p> This feature is available in Postfix 2.2 and later. </p> 1920 1921<p> Note: you MUST stop and start Postfix after changing this 1922parameter. </p> 1923 1924<p> On systems that pre-date IPV6_V6ONLY support (RFC 3493), an 1925IPv6 server will also accept IPv4 connections, even when IPv4 is 1926turned off with the inet_protocols parameter. On systems with 1927IPV6_V6ONLY support, Postfix will use separate server sockets for 1928IPv6 and IPv4, and each will accept only connections for the 1929corresponding protocol. </p> 1930 1931<p> When IPv4 support is enabled via the inet_protocols parameter, 1932Postfix will look up DNS type A records, and will convert 1933IPv4-in-IPv6 client IP addresses (::ffff:1.2.3.4) to their original 1934IPv4 form (1.2.3.4). The latter is needed on hosts that pre-date 1935IPV6_V6ONLY support (RFC 3493). </p> 1936 1937<p> When IPv6 support is enabled via the inet_protocols parameter, 1938Postfix will do DNS type AAAA record lookups. </p> 1939 1940<p> When both IPv4 and IPv6 support are enabled, the Postfix SMTP 1941client will attempt to connect via IPv6 before attempting to use 1942IPv4. </p> 1943 1944<p> 1945Examples: 1946</p> 1947 1948<pre> 1949inet_protocols = ipv4 1950inet_protocols = all (DEFAULT) 1951inet_protocols = ipv6 1952inet_protocols = ipv4, ipv6 1953</pre> 1954 1955%PARAM initial_destination_concurrency 5 1956 1957<p> 1958The initial per-destination concurrency level for parallel delivery 1959to the same destination. 1960With per-destination recipient limit > 1, a destination is a domain, 1961otherwise it is a recipient. 1962</p> 1963 1964<p> Use <i>transport</i>_initial_destination_concurrency to specify 1965a transport-specific override, where <i>transport</i> is the master.cf 1966name of the message delivery transport (Postfix 2.5 and later). </p> 1967 1968<p> 1969Warning: with concurrency of 1, one bad message can be enough to 1970block all mail to a site. 1971</p> 1972 1973%PARAM invalid_hostname_reject_code 501 1974 1975<p> 1976The numerical Postfix SMTP server response code when the client 1977HELO or EHLO command parameter is rejected by the reject_invalid_helo_hostname 1978restriction. 1979</p> 1980 1981<p> 1982Do not change this unless you have a complete understanding of RFC 2821. 1983</p> 1984 1985%PARAM ipc_idle version dependent 1986 1987<p> 1988The time after which a client closes an idle internal communication 1989channel. The purpose is to allow Postfix daemon processes to 1990terminate voluntarily after they become idle. This is used, for 1991example, by the Postfix address resolving and rewriting clients. 1992</p> 1993 1994<p> With Postfix 2.4 the default value was reduced from 100s to 5s. </p> 1995 1996<p> 1997Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 1998The default time unit is s (seconds). 1999</p> 2000 2001%PARAM ipc_timeout 3600s 2002 2003<p> 2004The time limit for sending or receiving information over an internal 2005communication channel. The purpose is to break out of deadlock 2006situations. If the time limit is exceeded the software aborts with a 2007fatal error. 2008</p> 2009 2010<p> 2011Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2012The default time unit is s (seconds). 2013</p> 2014 2015%PARAM ipc_ttl 1000s 2016 2017<p> 2018The time after which a client closes an active internal communication 2019channel. The purpose is to allow Postfix daemon processes to 2020terminate voluntarily 2021after reaching their client limit. This is used, for example, by 2022the Postfix address resolving and rewriting clients. 2023</p> 2024 2025<p> 2026Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2027The default time unit is s (seconds). 2028</p> 2029 2030<p> 2031This feature is available in Postfix 2.1 and later. 2032</p> 2033 2034%PARAM line_length_limit 2048 2035 2036<p> Upon input, long lines are chopped up into pieces of at most 2037this length; upon delivery, long lines are reconstructed. </p> 2038 2039%PARAM lmtp_connect_timeout 0s 2040 2041<p> The Postfix LMTP client time limit for completing a TCP connection, or 2042zero (use the operating system built-in time limit). When no 2043connection can be made within the deadline, the LMTP client tries 2044the next address on the mail exchanger list. </p> 2045 2046<p> 2047Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2048The default time unit is s (seconds). 2049</p> 2050 2051<p> 2052Example: 2053</p> 2054 2055<pre> 2056lmtp_connect_timeout = 30s 2057</pre> 2058 2059%PARAM lmtp_data_done_timeout 600s 2060 2061<p> The Postfix LMTP client time limit for sending the LMTP ".", 2062and for receiving the remote LMTP server response. When no response 2063is received within the deadline, a warning is logged that the mail 2064may be delivered multiple times. </p> 2065 2066<p> 2067Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2068The default time unit is s (seconds). 2069</p> 2070 2071%PARAM lmtp_data_init_timeout 120s 2072 2073<p> 2074The Postfix LMTP client time limit for sending the LMTP DATA command, 2075and 2076for receiving the remote LMTP server response. 2077</p> 2078 2079<p> 2080Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2081The default time unit is s (seconds). 2082</p> 2083 2084%PARAM lmtp_data_xfer_timeout 180s 2085 2086<p> 2087The Postfix LMTP client time limit for sending the LMTP message 2088content. 2089When the connection stalls for more than $lmtp_data_xfer_timeout 2090the LMTP client terminates the transfer. 2091</p> 2092 2093<p> 2094Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2095The default time unit is s (seconds). 2096</p> 2097 2098%PARAM lmtp_lhlo_timeout 300s 2099 2100<p> The Postfix LMTP client time limit for receiving the LMTP 2101greeting banner. When the remote LMTP server drops the connection 2102without sending a 2103greeting banner, or when it sends no greeting banner within the 2104deadline, the LMTP client tries the next address on the mail 2105exchanger list. </p> 2106 2107<p> 2108Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2109The default time unit is s (seconds). 2110</p> 2111 2112%PARAM lmtp_mail_timeout 300s 2113 2114<p> 2115The Postfix LMTP client time limit for sending the MAIL FROM command, 2116and for receiving the remote LMTP server response. 2117</p> 2118 2119<p> 2120Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2121The default time unit is s (seconds). 2122</p> 2123 2124%PARAM lmtp_quit_timeout 300s 2125 2126<p> 2127The Postfix LMTP client time limit for sending the QUIT command, 2128and for receiving the remote LMTP server response. 2129</p> 2130 2131<p> 2132Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2133The default time unit is s (seconds). 2134</p> 2135 2136%PARAM lmtp_rcpt_timeout 300s 2137 2138<p> 2139The Postfix LMTP client time limit for sending the RCPT TO command, 2140and for receiving the remote LMTP server response. 2141</p> 2142 2143<p> 2144Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2145The default time unit is s (seconds). 2146</p> 2147 2148%PARAM lmtp_rset_timeout 20s 2149 2150<p> The Postfix LMTP client time limit for sending the RSET command, 2151and for receiving the remote LMTP server response. The LMTP client 2152sends RSET in 2153order to finish a recipient address probe, or to verify that a 2154cached connection is still alive. </p> 2155 2156<p> 2157Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2158The default time unit is s (seconds). 2159</p> 2160 2161%PARAM lmtp_send_xforward_command no 2162 2163<p> 2164Send an XFORWARD command to the remote LMTP server when the LMTP LHLO 2165server response announces XFORWARD support. This allows an lmtp(8) 2166delivery agent, used for content filter message injection, to 2167forward the name, address, protocol and HELO name of the original 2168client to the content filter and downstream queuing LMTP server. 2169Before you change the value to yes, it is best to make sure that 2170your content filter supports this command. 2171</p> 2172 2173<p> 2174This feature is available in Postfix 2.1 and later. 2175</p> 2176 2177%PARAM lmtp_skip_quit_response no 2178 2179<p> 2180Wait for the response to the LMTP QUIT command. 2181</p> 2182 2183%PARAM lmtp_xforward_timeout 300s 2184 2185<p> 2186The Postfix LMTP client time limit for sending the XFORWARD command, 2187and for receiving the remote LMTP server response. 2188</p> 2189 2190<p> 2191In case of problems the client does NOT try the next address on 2192the mail exchanger list. 2193</p> 2194 2195<p> 2196Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2197The default time unit is s (seconds). 2198</p> 2199 2200<p> 2201This feature is available in Postfix 2.1 and later. 2202</p> 2203 2204%PARAM local_command_shell 2205 2206<p> 2207Optional shell program for local(8) delivery to non-Postfix command. 2208By default, non-Postfix commands are executed directly; commands 2209are given to given to the default shell (typically, /bin/sh) only 2210when they contain shell meta characters or shell built-in commands. 2211</p> 2212 2213<p> "sendmail's restricted shell" (smrsh) is what most people will 2214use in order to restrict what programs can be run from e.g. .forward 2215files (smrsh is part of the Sendmail distribution). </p> 2216 2217<p> Note: when a shell program is specified, it is invoked even 2218when the command contains no shell built-in commands or meta 2219characters. </p> 2220 2221<p> 2222Example: 2223</p> 2224 2225<pre> 2226local_command_shell = /some/where/smrsh -c 2227local_command_shell = /bin/bash -c 2228</pre> 2229 2230%PARAM local_destination_concurrency_limit 2 2231 2232<p> The maximal number of parallel deliveries via the local mail 2233delivery transport to the same recipient (when 2234"local_destination_recipient_limit = 1") or the maximal number of 2235parallel deliveries to the same local domain (when 2236"local_destination_recipient_limit > 1"). This limit is enforced by 2237the queue manager. The message delivery transport name is the first 2238field in the entry in the master.cf file. </p> 2239 2240<p> A low limit of 2 is recommended, just in case someone has an 2241expensive shell command in a .forward file or in an alias (e.g., 2242a mailing list manager). You don't want to run lots of those at 2243the same time. </p> 2244 2245%PARAM local_destination_recipient_limit 1 2246 2247<p> The maximal number of recipients per message delivery via the 2248local mail delivery transport. This limit is enforced by the queue 2249manager. The message delivery transport name is the first field in 2250the entry in the master.cf file. </p> 2251 2252<p> Setting this parameter to a value > 1 changes the meaning of 2253local_destination_concurrency_limit from concurrency per recipient 2254into concurrency per domain. </p> 2255 2256%PARAM local_recipient_maps proxy:unix:passwd.byname $alias_maps 2257 2258<p> Lookup tables with all names or addresses of local recipients: 2259a recipient address is local when its domain matches $mydestination, 2260$inet_interfaces or $proxy_interfaces. Specify @domain as a 2261wild-card for domains that do not have a valid recipient list. 2262Technically, tables listed with $local_recipient_maps are used as 2263lists: Postfix needs to know only if a lookup string is found or 2264not, but it does not use the result from table lookup. </p> 2265 2266<p> 2267If this parameter is non-empty (the default), then the Postfix SMTP 2268server will reject mail for unknown local users. 2269</p> 2270 2271<p> 2272To turn off local recipient checking in the Postfix SMTP server, 2273specify "local_recipient_maps =" (i.e. empty). 2274</p> 2275 2276<p> 2277The default setting assumes that you use the default Postfix local 2278delivery agent for local delivery. You need to update the 2279local_recipient_maps setting if: 2280</p> 2281 2282<ul> 2283 2284<li>You redefine the local delivery agent in master.cf. 2285 2286<li>You redefine the "local_transport" setting in main.cf. 2287 2288<li>You use the "luser_relay", "mailbox_transport", or "fallback_transport" 2289feature of the Postfix local(8) delivery agent. 2290 2291</ul> 2292 2293<p> 2294Details are described in the LOCAL_RECIPIENT_README file. 2295</p> 2296 2297<p> 2298Beware: if the Postfix SMTP server runs chrooted, you need to access 2299the passwd file via the proxymap(8) service, in order to overcome 2300chroot access restrictions. The alternative, maintaining a copy of 2301the system password file in the chroot jail is not practical. 2302</p> 2303 2304<p> 2305Examples: 2306</p> 2307 2308<pre> 2309local_recipient_maps = 2310</pre> 2311 2312%PARAM local_transport local:$myhostname 2313 2314<p> The default mail delivery transport and next-hop destination 2315for final delivery to domains listed with mydestination, and for 2316[ipaddress] destinations that match $inet_interfaces or $proxy_interfaces. 2317This information can be overruled with the transport(5) table. </p> 2318 2319<p> 2320By default, local mail is delivered to the transport called "local", 2321which is just the name of a service that is defined the master.cf file. 2322</p> 2323 2324<p> 2325Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i> 2326is the name of a mail delivery transport defined in master.cf. 2327The <i>:nexthop</i> destination is optional; its syntax is documented 2328in the manual page of the corresponding delivery agent. 2329</p> 2330 2331<p> 2332Beware: if you override the default local delivery agent then you 2333need to review the LOCAL_RECIPIENT_README document, otherwise the 2334SMTP server may reject mail for local recipients. 2335</p> 2336 2337%PARAM luser_relay 2338 2339<p> 2340Optional catch-all destination for unknown local(8) recipients. 2341By default, mail for unknown recipients in domains that match 2342$mydestination, $inet_interfaces or $proxy_interfaces is returned 2343as undeliverable. 2344</p> 2345 2346<p> 2347The following $name expansions are done on luser_relay: 2348</p> 2349 2350<dl> 2351 2352<dt><b>$domain</b></dt> 2353 2354<dd>The recipient domain. </dd> 2355 2356<dt><b>$extension</b></dt> 2357 2358<dd>The recipient address extension. </dd> 2359 2360<dt><b>$home</b></dt> 2361 2362<dd>The recipient's home directory. </dd> 2363 2364<dt><b>$local</b></dt> 2365 2366<dd>The entire recipient address localpart. </dd> 2367 2368<dt><b>$recipient</b></dt> 2369 2370<dd>The full recipient address. </dd> 2371 2372<dt><b>$recipient_delimiter</b></dt> 2373 2374<dd>The system-wide recipient address extension delimiter. </dd> 2375 2376<dt><b>$shell</b></dt> 2377 2378<dd>The recipient's login shell. </dd> 2379 2380<dt><b>$user</b></dt> 2381 2382<dd>The recipient username. </dd> 2383 2384<dt><b>${name?value}</b></dt> 2385 2386<dd>Expands to <i>value</i> when <i>$name</i> has a non-empty value. </dd> 2387 2388<dt><b>${name:value}</b></dt> 2389 2390<dd>Expands to <i>value</i> when <i>$name</i> has an empty value. </dd> 2391 2392</dl> 2393 2394<p> 2395Instead of $name you can also specify ${name} or $(name). 2396</p> 2397 2398<p> 2399Note: luser_relay works only for the Postfix local(8) delivery agent. 2400</p> 2401 2402<p> 2403Note: if you use this feature for accounts not in the UNIX password 2404file, then you must specify "local_recipient_maps =" (i.e. empty) 2405in the main.cf file, otherwise the Postfix SMTP server will reject mail 2406for non-UNIX accounts with "User unknown in local recipient table". 2407</p> 2408 2409<p> 2410Examples: 2411</p> 2412 2413<pre> 2414luser_relay = $user@other.host 2415luser_relay = $local@other.host 2416luser_relay = admin+$local 2417</pre> 2418 2419%PARAM mail_name Postfix 2420 2421<p> 2422The mail system name that is displayed in Received: headers, in 2423the SMTP greeting banner, and in bounced mail. 2424</p> 2425 2426%PARAM mail_owner postfix 2427 2428<p> 2429The UNIX system account that owns the Postfix queue and most Postfix 2430daemon processes. Specify the name of a user account that does 2431not share a group with other accounts and that owns no other files 2432or processes on the system. In particular, don't specify nobody 2433or daemon. PLEASE USE A DEDICATED USER ID AND GROUP ID. 2434</p> 2435 2436<p> 2437When this parameter value is changed you need to re-run "<b>postfix 2438set-permissions</b>" (with Postfix version 2.0 and earlier: 2439"<b>/etc/postfix/post-install set-permissions</b>". 2440</p> 2441 2442%PARAM mail_spool_directory see "postconf -d" output 2443 2444<p> 2445The directory where local(8) UNIX-style mailboxes are kept. The 2446default setting depends on the system type. Specify a name ending 2447in / for maildir-style delivery. 2448</p> 2449 2450<p> 2451Note: maildir delivery is done with the privileges of the recipient. 2452If you use the mail_spool_directory setting for maildir style 2453delivery, then you must create the top-level maildir directory in 2454advance. Postfix will not create it. 2455</p> 2456 2457<p> 2458Examples: 2459</p> 2460 2461<pre> 2462mail_spool_directory = /var/mail 2463mail_spool_directory = /var/spool/mail 2464</pre> 2465 2466%PARAM mail_version see "postconf -d" output 2467 2468<p> 2469The version of the mail system. Stable releases are named 2470<i>major</i>.<i>minor</i>.<i>patchlevel</i>. Experimental releases 2471also include the release date. The version string can be used in, 2472for example, the SMTP greeting banner. 2473</p> 2474 2475%PARAM mailbox_command 2476 2477<p> 2478Optional external command that the local(8) delivery agent should 2479use for mailbox delivery. The command is run with the user ID and 2480the primary group ID privileges of the recipient. Exception: 2481command delivery for root executes with $default_privs privileges. 2482This is not a problem, because 1) mail for root should always be 2483aliased to a real user and 2) don't log in as root, use "su" instead. 2484</p> 2485 2486<p> 2487The following environment variables are exported to the command: 2488</p> 2489 2490<dl> 2491 2492<dt><b>CLIENT_ADDRESS</b></dt> 2493 2494<dd>Remote client network address. Available in Postfix version 2.2 and 2495later. </dd> 2496 2497<dt><b>CLIENT_HELO</b></dt> 2498 2499<dd>Remote client EHLO command parameter. Available in Postfix version 2.2 2500and later.</dd> 2501 2502<dt><b>CLIENT_HOSTNAME</b></dt> 2503 2504<dd>Remote client hostname. Available in Postfix version 2.2 and later. 2505</dd> 2506 2507<dt><b>CLIENT_PROTOCOL</b></dt> 2508 2509<dd>Remote client protocol. Available in Postfix version 2.2 and later. 2510</dd> 2511 2512<dt><b>DOMAIN</b></dt> 2513 2514<dd>The domain part of the recipient address. </dd> 2515 2516<dt><b>EXTENSION</b></dt> 2517 2518<dd>The optional address extension. </dd> 2519 2520<dt><b>HOME</b></dt> 2521 2522<dd>The recipient home directory. </dd> 2523 2524<dt><b>LOCAL</b></dt> 2525 2526<dd>The recipient address localpart. </dd> 2527 2528<dt><b>LOGNAME</b></dt> 2529 2530<dd>The recipient's username. </dd> 2531 2532<dt><b>ORIGINAL_RECIPIENT</b></dt> 2533 2534<dd>The entire recipient address, before any address rewriting or 2535aliasing. </dd> 2536 2537<dt><b>RECIPIENT</b></dt> 2538 2539<dd>The full recipient address. </dd> 2540 2541<dt><b>SASL_METHOD</b></dt> 2542 2543<dd>SASL authentication method specified in the remote client AUTH 2544command. Available in Postfix version 2.2 and later. </dd> 2545 2546<dt><b>SASL_SENDER</b></dt> 2547 2548<dd>SASL sender address specified in the remote client MAIL FROM 2549command. Available in Postfix version 2.2 and later. </dd> 2550 2551<dt><b>SASL_USER</b></dt> 2552 2553<dd>SASL username specified in the remote client AUTH command. 2554Available in Postfix version 2.2 and later. </dd> 2555 2556<dt><b>SENDER</b></dt> 2557 2558<dd>The full sender address. </dd> 2559 2560<dt><b>SHELL</b></dt> 2561 2562<dd>The recipient's login shell. </dd> 2563 2564<dt><b>USER</b></dt> 2565 2566<dd>The recipient username. </dd> 2567 2568</dl> 2569 2570<p> 2571Unlike other Postfix configuration parameters, the mailbox_command 2572parameter is not subjected to $name substitutions. This is to make 2573it easier to specify shell syntax (see example below). 2574</p> 2575 2576<p> 2577If you can, avoid shell meta characters because they will force 2578Postfix to run an expensive shell process. If you're delivering 2579via Procmail then running a shell won't make a noticeable difference 2580in the total cost. 2581</p> 2582 2583<p> 2584Note: if you use the mailbox_command feature to deliver mail 2585system-wide, you must set up an alias that forwards mail for root 2586to a real user. 2587</p> 2588 2589<p> The precedence of local(8) delivery features from high to low 2590is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 2591mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 2592fallback_transport_maps, fallback_transport and luser_relay. </p> 2593 2594<p> 2595Examples: 2596</p> 2597 2598<pre> 2599mailbox_command = /some/where/procmail 2600mailbox_command = /some/where/procmail -a "$EXTENSION" 2601mailbox_command = /some/where/maildrop -d "$USER" 2602 -f "$SENDER" "$EXTENSION" 2603</pre> 2604 2605%PARAM mailbox_size_limit 51200000 2606 2607<p> The maximal size of any local(8) individual mailbox or maildir 2608file, or zero (no limit). In fact, this limits the size of any 2609file that is written to upon local delivery, including files written 2610by external commands that are executed by the local(8) delivery 2611agent. </p> 2612 2613<p> 2614This limit must not be smaller than the message size limit. 2615</p> 2616 2617%PARAM maps_rbl_reject_code 554 2618 2619<p> 2620The numerical Postfix SMTP server response code when a remote SMTP 2621client request is blocked by the reject_rbl_client, reject_rhsbl_client, 2622reject_rhsbl_reverse_client, reject_rhsbl_sender or 2623reject_rhsbl_recipient restriction. 2624</p> 2625 2626<p> 2627Do not change this unless you have a complete understanding of RFC 2821. 2628</p> 2629 2630%PARAM masquerade_classes envelope_sender, header_sender, header_recipient 2631 2632<p> 2633What addresses are subject to address masquerading. 2634</p> 2635 2636<p> 2637By default, address masquerading is limited to envelope sender 2638addresses, and to header sender and header recipient addresses. 2639This allows you to use address masquerading on a mail gateway while 2640still being able to forward mail to users on individual machines. 2641</p> 2642 2643<p> 2644Specify zero or more of: envelope_sender, envelope_recipient, 2645header_sender, header_recipient 2646</p> 2647 2648%PARAM masquerade_domains 2649 2650<p> 2651Optional list of domains whose subdomain structure will be stripped 2652off in email addresses. 2653</p> 2654 2655<p> 2656The list is processed left to right, and processing stops at the 2657first match. Thus, 2658</p> 2659 2660<blockquote> 2661<pre> 2662masquerade_domains = foo.example.com example.com 2663</pre> 2664</blockquote> 2665 2666<p> 2667strips "user@any.thing.foo.example.com" to "user@foo.example.com", 2668but strips "user@any.thing.else.example.com" to "user@example.com". 2669</p> 2670 2671<p> 2672A domain name prefixed with ! means do not masquerade this domain 2673or its subdomains. Thus, 2674</p> 2675 2676<blockquote> 2677<pre> 2678masquerade_domains = !foo.example.com example.com 2679</pre> 2680</blockquote> 2681 2682<p> 2683does not change "user@any.thing.foo.example.com" or "user@foo.example.com", 2684but strips "user@any.thing.else.example.com" to "user@example.com". 2685</p> 2686 2687<p> Note: with Postfix version 2.2, message header address masquerading 2688happens only when message header address rewriting is enabled: </p> 2689 2690<ul> 2691 2692<li> The message is received with the Postfix sendmail(1) command, 2693 2694<li> The message is received from a network client that matches 2695$local_header_rewrite_clients, 2696 2697<li> The message is received from the network, and the 2698remote_header_rewrite_domain parameter specifies a non-empty value. 2699 2700</ul> 2701 2702<p> To get the behavior before Postfix version 2.2, specify 2703"local_header_rewrite_clients = static:all". </p> 2704 2705 2706<p> 2707Example: 2708</p> 2709 2710<pre> 2711masquerade_domains = $mydomain 2712</pre> 2713 2714%PARAM masquerade_exceptions 2715 2716<p> 2717Optional list of user names that are not subjected to address 2718masquerading, even when their address matches $masquerade_domains. 2719</p> 2720 2721<p> 2722By default, address masquerading makes no exceptions. 2723</p> 2724 2725<p> 2726Specify a list of user names, "/file/name" or "type:table" patterns, 2727separated by commas and/or whitespace. The list is matched left to 2728right, and the search stops on the first match. A "/file/name" 2729pattern is replaced 2730by its contents; a "type:table" lookup table is matched when a name 2731matches a lookup key (the lookup result is ignored). Continue long 2732lines by starting the next line with whitespace. Specify "!pattern" 2733to exclude a name from the list. The form "!/file/name" is supported 2734only in Postfix version 2.4 and later. </p> 2735 2736<p> 2737Examples: 2738</p> 2739 2740<pre> 2741masquerade_exceptions = root, mailer-daemon 2742masquerade_exceptions = root 2743</pre> 2744 2745%PARAM max_idle 100s 2746 2747<p> 2748The maximum amount of time that an idle Postfix daemon process waits 2749for an incoming connection before terminating voluntarily. This 2750parameter 2751is ignored by the Postfix queue manager and by other long-lived 2752Postfix daemon processes. 2753</p> 2754 2755<p> 2756Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2757The default time unit is s (seconds). 2758</p> 2759 2760%PARAM max_use 100 2761 2762<p> 2763The maximal number of incoming connections that a Postfix daemon 2764process will service before terminating voluntarily. This parameter 2765is ignored by the Postfix queue 2766manager and by other long-lived Postfix daemon processes. 2767</p> 2768 2769%PARAM maximal_backoff_time 4000s 2770 2771<p> 2772The maximal time between attempts to deliver a deferred message. 2773</p> 2774 2775<p> This parameter should be set to a value greater than or equal 2776to $minimal_backoff_time. See also $queue_run_delay. </p> 2777 2778<p> 2779Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2780The default time unit is s (seconds). 2781</p> 2782 2783%PARAM maximal_queue_lifetime 5d 2784 2785<p> 2786The maximal time a message is queued before it is sent back as 2787undeliverable. 2788</p> 2789 2790<p> 2791Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2792The default time unit is d (days). 2793</p> 2794 2795<p> 2796Specify 0 when mail delivery should be tried only once. 2797</p> 2798 2799%PARAM message_size_limit 10240000 2800 2801<p> 2802The maximal size in bytes of a message, including envelope information. 2803</p> 2804 2805<p> Note: be careful when making changes. Excessively small values 2806will result in the loss of non-delivery notifications, when a bounce 2807message size exceeds the local or remote MTA's message size limit. 2808</p> 2809 2810%PARAM minimal_backoff_time 300s 2811 2812<p> 2813The minimal time between attempts to deliver a deferred message; 2814prior to Postfix 2.4 the default value was 1000s. 2815</p> 2816 2817<p> 2818This parameter also limits the time an unreachable destination is 2819kept in the short-term, in-memory, destination status cache. 2820</p> 2821 2822<p> This parameter should be set greater than or equal to 2823$queue_run_delay. See also $maximal_backoff_time. </p> 2824 2825<p> 2826Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 2827The default time unit is s (seconds). 2828</p> 2829 2830%PARAM multi_recipient_bounce_reject_code 550 2831 2832<p> 2833The numerical Postfix SMTP server response code when a remote SMTP 2834client request is blocked by the reject_multi_recipient_bounce 2835restriction. 2836</p> 2837 2838<p> 2839Do not change this unless you have a complete understanding of RFC 2821. 2840</p> 2841 2842<p> 2843This feature is available in Postfix 2.1 and later. 2844</p> 2845 2846%PARAM mydestination $myhostname, localhost.$mydomain, localhost 2847 2848<p> The list of domains that are delivered via the $local_transport 2849mail delivery transport. By default this is the Postfix local(8) 2850delivery agent which looks up all recipients in /etc/passwd and 2851/etc/aliases. The SMTP server validates recipient addresses with 2852$local_recipient_maps and rejects non-existent recipients. See also 2853the local domain class in the ADDRESS_CLASS_README file. 2854</p> 2855 2856<p> 2857The default mydestination value specifies names for the local 2858machine only. On a mail domain gateway, you should also include 2859$mydomain. 2860</p> 2861 2862<p> 2863The $local_transport delivery method is also selected for mail 2864addressed to user@[the.net.work.address] of the mail system (the 2865IP addresses specified with the inet_interfaces and proxy_interfaces 2866parameters). 2867</p> 2868 2869<p> 2870Warnings: 2871</p> 2872 2873<ul> 2874 2875<li><p>Do not specify the names of virtual domains - those domains 2876are specified elsewhere. See VIRTUAL_README for more information. </p> 2877 2878<li><p>Do not specify the names of domains that this machine is 2879backup MX host for. See STANDARD_CONFIGURATION_README for how to 2880set up backup MX hosts. </p> 2881 2882<li><p>By default, the Postfix SMTP server rejects mail for recipients 2883not listed with the local_recipient_maps parameter. See the 2884postconf(5) manual for a description of the local_recipient_maps 2885and unknown_local_recipient_reject_code parameters. </p> 2886 2887</ul> 2888 2889<p> 2890Specify a list of host or domain names, "/file/name" or "type:table" 2891patterns, separated by commas and/or whitespace. A "/file/name" 2892pattern is replaced by its contents; a "type:table" lookup table 2893is matched when a name matches a lookup key (the lookup result is 2894ignored). Continue long lines by starting the next line with 2895whitespace. </p> 2896 2897<p> 2898Examples: 2899</p> 2900 2901<pre> 2902mydestination = $myhostname, localhost.$mydomain $mydomain 2903mydestination = $myhostname, localhost.$mydomain www.$mydomain, ftp.$mydomain 2904</pre> 2905 2906%PARAM mydomain see "postconf -d" output 2907 2908<p> 2909The internet domain name of this mail system. The default is to 2910use $myhostname minus the first component, or "localdomain" (Postfix 29112.3 and later). $mydomain is used as 2912a default value for many other configuration parameters. 2913</p> 2914 2915<p> 2916Example: 2917</p> 2918 2919<pre> 2920mydomain = domain.tld 2921</pre> 2922 2923%PARAM myhostname see "postconf -d" output 2924 2925<p> 2926The internet hostname of this mail system. The default is to use 2927the fully-qualified domain name (FQDN) from gethostname(), or to 2928use the non-FQDN result from gethostname() and append ".$mydomain". 2929$myhostname is used as a default value for many other configuration 2930parameters. </p> 2931 2932<p> 2933Example: 2934</p> 2935 2936<pre> 2937myhostname = host.example.com 2938</pre> 2939 2940%PARAM mynetworks see "postconf -d" output 2941 2942<p> 2943The list of "trusted" remote SMTP clients that have more privileges than 2944"strangers". 2945</p> 2946 2947<p> 2948In particular, "trusted" SMTP clients are allowed to relay mail 2949through Postfix. See the smtpd_recipient_restrictions parameter 2950description in the postconf(5) manual. 2951</p> 2952 2953<p> 2954You can specify the list of "trusted" network addresses by hand 2955or you can let Postfix do it for you (which is the default). 2956See the description of the mynetworks_style parameter for more 2957information. 2958</p> 2959 2960<p> 2961If you specify the mynetworks list by hand, 2962Postfix ignores the mynetworks_style setting. 2963</p> 2964 2965<p> Specify a list of network addresses or network/netmask patterns, 2966separated by commas and/or whitespace. Continue long lines by 2967starting the next line with whitespace. </p> 2968 2969<p> The netmask specifies the number of bits in the network part 2970of a host address. You can also specify "/file/name" or "type:table" 2971patterns. A "/file/name" pattern is replaced by its contents; a 2972"type:table" lookup table is matched when a table entry matches a 2973lookup string (the lookup result is ignored). </p> 2974 2975<p> The list is matched left to right, and the search stops on the 2976first match. Specify "!pattern" to exclude an address or network 2977block from the list. The form "!/file/name" is supported only 2978in Postfix version 2.4 and later. </p> 2979 2980<p> Note: IP version 6 address information must be specified inside 2981<tt>[]</tt> in the mynetworks value, and in files specified with 2982"/file/name". IP version 6 addresses contain the ":" character, 2983and would otherwise be confused with a "type:table" pattern. </p> 2984 2985<p> Examples: </p> 2986 2987<pre> 2988mynetworks = 127.0.0.0/8 168.100.189.0/28 2989mynetworks = !192.168.0.1, 192.168.0.0/28 2990mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [2001:240:587::]/64 2991mynetworks = $config_directory/mynetworks 2992mynetworks = hash:/etc/postfix/network_table 2993</pre> 2994 2995%PARAM myorigin $myhostname 2996 2997<p> 2998The domain name that locally-posted mail appears to come 2999from, and that locally posted mail is delivered to. The default, 3000$myhostname, is adequate for small sites. If you run a domain with 3001multiple machines, you should (1) change this to $mydomain and (2) 3002set up a domain-wide alias database that aliases each user to 3003user@that.users.mailhost. 3004</p> 3005 3006<p> 3007Example: 3008</p> 3009 3010<pre> 3011myorigin = $mydomain 3012</pre> 3013 3014%PARAM notify_classes resource, software 3015 3016<p> 3017The list of error classes that are reported to the postmaster. The 3018default is to report only the most serious problems. The paranoid 3019may wish to turn on the policy (UCE and mail relaying) and protocol 3020error (broken mail software) reports. 3021</p> 3022 3023<p> NOTE: postmaster notifications may contain confidential information 3024such as SASL passwords or message content. It is the system 3025administrator's responsibility to treat such information with care. 3026</p> 3027 3028<p> 3029The error classes are: 3030</p> 3031 3032<dl> 3033 3034<dt><b>bounce</b> (also implies <b>2bounce</b>)</dt> 3035 3036<dd>Send the postmaster copies of the headers of bounced mail, and 3037send transcripts of SMTP sessions when Postfix rejects mail. The 3038notification is sent to the address specified with the 3039bounce_notice_recipient configuration parameter (default: postmaster). 3040</dd> 3041 3042<dt><b>2bounce</b></dt> 3043 3044<dd>Send undeliverable bounced mail to the postmaster. The notification 3045is sent to the address specified with the 2bounce_notice_recipient 3046configuration parameter (default: postmaster). </dd> 3047 3048<dt><b>data</b></dt> 3049 3050<dd>Send the postmaster a transcript of the SMTP session with an 3051error because a critical data file was unavailable. The notification 3052is sent to the address specified with the error_notice_recipient 3053configuration parameter (default: postmaster). <br> This feature 3054is available in Postfix 2.9 and later. </dd> 3055 3056<dt><b>delay</b></dt> 3057 3058<dd>Send the postmaster copies of the headers of delayed mail. The 3059notification is sent to the address specified with the 3060delay_notice_recipient configuration parameter (default: postmaster). 3061</dd> 3062 3063<dt><b>policy</b></dt> 3064 3065<dd>Send the postmaster a transcript of the SMTP session when a 3066client request was rejected because of (UCE) policy. The notification 3067is sent to the address specified with the error_notice_recipient 3068configuration parameter (default: postmaster). </dd> 3069 3070<dt><b>protocol</b></dt> 3071 3072<dd>Send the postmaster a transcript of the SMTP session in case 3073of client or server protocol errors. The notification is sent to 3074the address specified with the error_notice_recipient configuration 3075parameter (default: postmaster). </dd> 3076 3077<dt><b>resource</b></dt> 3078 3079<dd>Inform the postmaster of mail not delivered due to resource 3080problems. The notification is sent to the address specified with 3081the error_notice_recipient configuration parameter (default: 3082postmaster). </dd> 3083 3084<dt><b>software</b></dt> 3085 3086<dd>Inform the postmaster of mail not delivered due to software 3087problems. The notification is sent to the address specified with 3088the error_notice_recipient configuration parameter (default: 3089postmaster). </dd> 3090 3091</dl> 3092 3093<p> 3094Examples: 3095</p> 3096 3097<pre> 3098notify_classes = bounce, delay, policy, protocol, resource, software 3099notify_classes = 2bounce, resource, software 3100</pre> 3101 3102%PARAM parent_domain_matches_subdomains see "postconf -d" output 3103 3104<p> 3105What Postfix features match subdomains of "domain.tld" automatically, 3106instead of requiring an explicit ".domain.tld" pattern. This is 3107planned backwards compatibility: eventually, all Postfix features 3108are expected to require explicit ".domain.tld" style patterns when 3109you really want to match subdomains. 3110</p> 3111 3112%PARAM propagate_unmatched_extensions canonical, virtual 3113 3114<p> 3115What address lookup tables copy an address extension from the lookup 3116key to the lookup result. 3117</p> 3118 3119<p> 3120For example, with a virtual(5) mapping of "<i>joe@example.com => 3121joe.user@example.net</i>", the address "<i>joe+foo@example.com</i>" 3122would rewrite to "<i>joe.user+foo@example.net</i>". 3123</p> 3124 3125<p> 3126Specify zero or more of <b>canonical</b>, <b>virtual</b>, <b>alias</b>, 3127<b>forward</b>, <b>include</b> or <b>generic</b>. These cause 3128address extension 3129propagation with canonical(5), virtual(5), and aliases(5) maps, 3130with local(8) .forward and :include: file lookups, and with smtp(8) 3131generic maps, respectively. </p> 3132 3133<p> 3134Note: enabling this feature for types other than <b>canonical</b> 3135and <b>virtual</b> is likely to cause problems when mail is forwarded 3136to other sites, especially with mail that is sent to a mailing list 3137exploder address. 3138</p> 3139 3140<p> 3141Examples: 3142</p> 3143 3144<pre> 3145propagate_unmatched_extensions = canonical, virtual, alias, 3146 forward, include 3147propagate_unmatched_extensions = canonical, virtual 3148</pre> 3149 3150%PARAM proxy_interfaces 3151 3152<p> 3153The network interface addresses that this mail system receives mail 3154on by way of a proxy or network address translation unit. 3155</p> 3156 3157<p> 3158This feature is available in Postfix 2.0 and later. 3159</p> 3160 3161<p> You must specify your "outside" proxy/NAT addresses when your 3162system is a backup MX host for other domains, otherwise mail delivery 3163loops will happen when the primary MX host is down. </p> 3164 3165<p> 3166Example: 3167</p> 3168 3169<pre> 3170proxy_interfaces = 1.2.3.4 3171</pre> 3172 3173%PARAM qmgr_message_active_limit 20000 3174 3175<p> 3176The maximal number of messages in the active queue. 3177</p> 3178 3179%PARAM qmgr_message_recipient_limit 20000 3180 3181<p> The maximal number of recipients held in memory by the Postfix 3182queue manager, and the maximal size of the size of the short-term, 3183in-memory "dead" destination status cache. </p> 3184 3185%PARAM qmgr_message_recipient_minimum 10 3186 3187<p> 3188The minimal number of in-memory recipients for any message. This 3189takes priority over any other in-memory recipient limits (i.e., 3190the global qmgr_message_recipient_limit and the per transport 3191_recipient_limit) if necessary. The minimum value allowed for this 3192parameter is 1. 3193</p> 3194 3195%PARAM qmqpd_authorized_clients 3196 3197<p> 3198What remote QMQP clients are allowed to connect to the Postfix QMQP 3199server port. 3200</p> 3201 3202<p> 3203By default, no client is allowed to use the service. This is 3204because the QMQP server will relay mail to any destination. 3205</p> 3206 3207<p> 3208Specify a list of client patterns. A list pattern specifies a host 3209name, a domain name, an internet address, or a network/mask pattern, 3210where the mask specifies the number of bits in the network part. 3211When a pattern specifies a file name, its contents are substituted 3212for the file name; when a pattern is a "type:table" table specification, 3213table lookup is used instead. </p> 3214 3215<p> 3216Patterns are separated by whitespace and/or commas. In order to 3217reverse the result, precede a pattern with an 3218exclamation point (!). The form "!/file/name" is supported only 3219in Postfix version 2.4 and later. 3220</p> 3221 3222<p> 3223Example: 3224</p> 3225 3226<pre> 3227qmqpd_authorized_clients = !192.168.0.1, 192.168.0.0/24 3228</pre> 3229 3230%PARAM qmqpd_error_delay 1s 3231 3232<p> 3233How long the Postfix QMQP server will pause before sending a negative 3234reply to the remote QMQP client. The purpose is to slow down confused 3235or malicious clients. 3236</p> 3237 3238<p> 3239Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3240The default time unit is s (seconds). 3241</p> 3242 3243%PARAM qmqpd_timeout 300s 3244 3245<p> 3246The time limit for sending or receiving information over the network. 3247If a read or write operation blocks for more than $qmqpd_timeout 3248seconds the Postfix QMQP server gives up and disconnects. 3249</p> 3250 3251<p> 3252Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3253The default time unit is s (seconds). 3254</p> 3255 3256%PARAM queue_minfree 0 3257 3258<p> 3259The minimal amount of free space in bytes in the queue file system 3260that is needed to receive mail. This is currently used by the 3261Postfix SMTP server to decide if it will accept any mail at all. 3262</p> 3263 3264<p> 3265By default, the Postfix SMTP server rejects MAIL FROM commands when 3266the amount of free space is less than 1.5*$message_size_limit 3267(Postfix version 2.1 and later). 3268To specify a higher minimum free space limit, specify a queue_minfree 3269value that is at least 1.5*$message_size_limit. 3270</p> 3271 3272<p> 3273With Postfix versions 2.0 and earlier, a queue_minfree value of 3274zero means there is no minimum required amount of free space. 3275</p> 3276 3277%PARAM queue_run_delay 300s 3278 3279<p> 3280The time between deferred queue scans by the queue manager; 3281prior to Postfix 2.4 the default value was 1000s. 3282</p> 3283 3284<p> This parameter should be set less than or equal to 3285$minimal_backoff_time. See also $maximal_backoff_time. </p> 3286 3287<p> 3288Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3289The default time unit is s (seconds). 3290</p> 3291 3292%PARAM rbl_reply_maps 3293 3294<p> 3295Optional lookup tables with RBL response templates. The tables are 3296indexed by the RBL domain name. By default, Postfix uses the default 3297template as specified with the default_rbl_reply configuration 3298parameter. See there for a discussion of the syntax of RBL reply 3299templates. 3300</p> 3301 3302<p> 3303This feature is available in Postfix 2.0 and later. 3304</p> 3305 3306%PARAM receive_override_options 3307 3308<p> Enable or disable recipient validation, built-in content 3309filtering, or address mapping. Typically, these are specified in 3310master.cf as command-line arguments for the smtpd(8), qmqpd(8) or 3311pickup(8) daemons. </p> 3312 3313<p> Specify zero or more of the following options. The options 3314override main.cf settings and are either implemented by smtpd(8), 3315qmqpd(8), or pickup(8) themselves, or they are forwarded to the 3316cleanup server. </p> 3317 3318<dl> 3319 3320<dt><b><a name="no_unknown_recipient_checks">no_unknown_recipient_checks</a></b></dt> 3321 3322<dd>Do not try to reject unknown recipients (SMTP server only). 3323This is typically specified AFTER an external content filter. 3324</dd> 3325 3326<dt><b><a name="no_address_mappings">no_address_mappings</a></b></dt> 3327 3328<dd>Disable canonical address mapping, virtual alias map expansion, 3329address masquerading, and automatic BCC (blind carbon-copy) 3330recipients. This is typically specified BEFORE an external content 3331filter. </dd> 3332 3333<dt><b><a name="no_header_body_checks">no_header_body_checks</a></b></dt> 3334 3335<dd>Disable header/body_checks. This is typically specified AFTER 3336an external content filter. </dd> 3337 3338<dt><b><a name="no_milters">no_milters</a></b></dt> 3339 3340<dd>Disable Milter (mail filter) applications. This is typically 3341specified AFTER an external content filter. </dd> 3342 3343</dl> 3344 3345<p> 3346Note: when the "BEFORE content filter" receive_override_options 3347setting is specified in the main.cf file, specify the "AFTER content 3348filter" receive_override_options setting in master.cf (and vice 3349versa). 3350</p> 3351 3352<p> 3353Examples: 3354</p> 3355 3356<pre> 3357receive_override_options = 3358 no_unknown_recipient_checks, no_header_body_checks 3359receive_override_options = no_address_mappings 3360</pre> 3361 3362<p> 3363This feature is available in Postfix 2.1 and later. 3364</p> 3365 3366%PARAM recipient_bcc_maps 3367 3368<p> 3369Optional BCC (blind carbon-copy) address lookup tables, indexed by 3370recipient address. The BCC address (multiple results are not 3371supported) is added when mail enters from outside of Postfix. 3372</p> 3373 3374<p> 3375This feature is available in Postfix 2.1 and later. 3376</p> 3377 3378<p> 3379The table search order is as follows: 3380</p> 3381 3382<ul> 3383 3384<li> Look up the "user+extension@domain.tld" address including the 3385optional address extension. 3386 3387<li> Look up the "user@domain.tld" address without the optional 3388address extension. 3389 3390<li> Look up the "user+extension" address local part when the 3391recipient domain equals $myorigin, $mydestination, $inet_interfaces 3392or $proxy_interfaces. 3393 3394<li> Look up the "user" address local part when the recipient domain 3395equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces. 3396 3397<li> Look up the "@domain.tld" part. 3398 3399</ul> 3400 3401<p> 3402Specify the types and names of databases to use. After change, 3403run "<b>postmap /etc/postfix/recipient_bcc</b>". 3404</p> 3405 3406<p> 3407Note: if mail to the BCC address bounces it will be returned to 3408the sender. 3409</p> 3410 3411<p> Note: automatic BCC recipients are produced only for new mail. 3412To avoid mailer loops, automatic BCC recipients are not generated 3413after Postfix forwards mail internally, or after Postfix generates 3414mail itself. </p> 3415 3416<p> 3417Example: 3418</p> 3419 3420<pre> 3421recipient_bcc_maps = hash:/etc/postfix/recipient_bcc 3422</pre> 3423 3424%PARAM recipient_canonical_maps 3425 3426<p> 3427Optional address mapping lookup tables for envelope and header 3428recipient addresses. 3429The table format and lookups are documented in canonical(5). 3430</p> 3431 3432<p> 3433Note: $recipient_canonical_maps is processed before $canonical_maps. 3434</p> 3435 3436<p> 3437Example: 3438</p> 3439 3440<pre> 3441recipient_canonical_maps = hash:/etc/postfix/recipient_canonical 3442</pre> 3443 3444%PARAM recipient_delimiter 3445 3446<p> 3447The separator between user names and address extensions (user+foo). 3448See canonical(5), local(8), relocated(5) and virtual(5) for the 3449effects this has on aliases, canonical, virtual, relocated and 3450on .forward file lookups. Basically, the software tries user+foo 3451and .forward+foo before trying user and .forward. 3452</p> 3453 3454<p> 3455Example: 3456</p> 3457 3458<pre> 3459recipient_delimiter = + 3460</pre> 3461 3462%PARAM reject_code 554 3463 3464<p> 3465The numerical Postfix SMTP server response code when a remote SMTP 3466client request is rejected by the "reject" restriction. 3467</p> 3468 3469<p> 3470Do not change this unless you have a complete understanding of RFC 2821. 3471</p> 3472 3473%PARAM relay_domains $mydestination 3474 3475<p> What destination domains (and subdomains thereof) this system 3476will relay mail to. Subdomain matching is controlled with the 3477parent_domain_matches_subdomains parameter. For details about how 3478the relay_domains value is used, see the description of the 3479permit_auth_destination and reject_unauth_destination SMTP recipient 3480restrictions. </p> 3481 3482<p> Domains that match $relay_domains are delivered with the 3483$relay_transport mail delivery transport. The SMTP server validates 3484recipient addresses with $relay_recipient_maps and rejects non-existent 3485recipients. See also the relay domains address class in the 3486ADDRESS_CLASS_README file. </p> 3487 3488<p> Note: Postfix will not automatically forward mail for domains 3489that list this system as their primary or backup MX host. See the 3490permit_mx_backup restriction in the postconf(5) manual page. </p> 3491 3492<p> Specify a list of host or domain names, "/file/name" patterns 3493or "type:table" lookup tables, separated by commas and/or whitespace. 3494Continue long lines by starting the next line with whitespace. A 3495"/file/name" pattern is replaced by its contents; a "type:table" 3496lookup table is matched when a (parent) domain appears as lookup 3497key. Specify "!pattern" to exclude a domain from the list. The form 3498"!/file/name" is supported only in Postfix version 2.4 and later. 3499</p> 3500 3501%PARAM relay_domains_reject_code 554 3502 3503<p> 3504The numerical Postfix SMTP server response code when a client 3505request is rejected by the reject_unauth_destination recipient 3506restriction. 3507</p> 3508 3509<p> 3510Do not change this unless you have a complete understanding of RFC 2821. 3511</p> 3512 3513%PARAM relay_recipient_maps 3514 3515<p> Optional lookup tables with all valid addresses in the domains 3516that match $relay_domains. Specify @domain as a wild-card for 3517domains that have no valid recipient list, and become a source of 3518backscatter mail: Postfix accepts spam for non-existent recipients 3519and then floods innocent people with undeliverable mail. Technically, 3520tables 3521listed with $relay_recipient_maps are used as lists: Postfix needs 3522to know only if a lookup string is found or not, but it does not 3523use the result from table lookup. </p> 3524 3525<p> 3526If this parameter is non-empty, then the Postfix SMTP server will reject 3527mail to unknown relay users. This feature is off by default. 3528</p> 3529 3530<p> 3531See also the relay domains address class in the ADDRESS_CLASS_README 3532file. 3533</p> 3534 3535<p> 3536Example: 3537</p> 3538 3539<pre> 3540relay_recipient_maps = hash:/etc/postfix/relay_recipients 3541</pre> 3542 3543<p> 3544This feature is available in Postfix 2.0 and later. 3545</p> 3546 3547%PARAM relayhost 3548 3549<p> 3550The next-hop destination of non-local mail; overrides non-local 3551domains in recipient addresses. This information is overruled with 3552relay_transport, sender_dependent_default_transport_maps, 3553default_transport, sender_dependent_relayhost_maps 3554and with the transport(5) table. 3555</p> 3556 3557<p> 3558On an intranet, specify the organizational domain name. If your 3559internal DNS uses no MX records, specify the name of the intranet 3560gateway host instead. 3561</p> 3562 3563<p> 3564In the case of SMTP, specify a domain name, hostname, hostname:port, 3565[hostname]:port, [hostaddress] or [hostaddress]:port. The form 3566[hostname] turns off MX lookups. 3567</p> 3568 3569<p> 3570If you're connected via UUCP, see the UUCP_README file for useful 3571information. 3572</p> 3573 3574<p> 3575Examples: 3576</p> 3577 3578<pre> 3579relayhost = $mydomain 3580relayhost = [gateway.example.com] 3581relayhost = uucphost 3582relayhost = [an.ip.add.ress] 3583</pre> 3584 3585%PARAM relocated_maps 3586 3587<p> 3588Optional lookup tables with new contact information for users or 3589domains that no longer exist. The table format and lookups are 3590documented in relocated(5). 3591</p> 3592 3593<p> 3594If you use this feature, run "<b>postmap /etc/postfix/relocated</b>" to 3595build the necessary DBM or DB file after change, then "<b>postfix 3596reload</b>" to make the changes visible. 3597</p> 3598 3599<p> 3600Examples: 3601</p> 3602 3603<pre> 3604relocated_maps = dbm:/etc/postfix/relocated 3605relocated_maps = hash:/etc/postfix/relocated 3606</pre> 3607 3608%PARAM require_home_directory no 3609 3610<p> 3611Require that a local(8) recipient's home directory exists 3612before mail delivery is attempted. By default this test is disabled. 3613It can be useful for environments that import home directories to 3614the mail server (IMPORTING HOME DIRECTORIES IS NOT RECOMMENDED). 3615</p> 3616 3617%PARAM resolve_dequoted_address yes 3618 3619<p> Resolve a recipient address safely instead of correctly, by 3620looking inside quotes. </p> 3621 3622<p> By default, the Postfix address resolver does not quote the 3623address localpart as per RFC 822, so that additional @ or % or ! 3624operators remain visible. This behavior is safe but it is also 3625technically incorrect. </p> 3626 3627<p> If you specify "resolve_dequoted_address = no", then 3628the Postfix 3629resolver will not know about additional @ etc. operators in the 3630address localpart. This opens opportunities for obscure mail relay 3631attacks with user@domain@domain addresses when Postfix provides 3632backup MX service for Sendmail systems. </p> 3633 3634%PARAM resolve_null_domain no 3635 3636<p> Resolve an address that ends in the "@" null domain as if the 3637local hostname were specified, instead of rejecting the address as 3638invalid. </p> 3639 3640<p> This feature is available in Postfix 2.1 and later. 3641Earlier versions always resolve the null domain as the local 3642hostname. </p> 3643 3644<p> The Postfix SMTP server uses this feature to reject mail from 3645or to addresses that end in the "@" null domain, and from addresses 3646that rewrite into a form that ends in the "@" null domain. </p> 3647 3648%PARAM sender_bcc_maps 3649 3650<p> Optional BCC (blind carbon-copy) address lookup tables, indexed 3651by sender address. The BCC address (multiple results are not 3652supported) is added when mail enters from outside of Postfix. </p> 3653 3654<p> 3655This feature is available in Postfix 2.1 and later. 3656</p> 3657 3658<p> 3659The table search order is as follows: 3660</p> 3661 3662<ul> 3663 3664<li> Look up the "user+extension@domain.tld" address including the 3665optional address extension. 3666 3667<li> Look up the "user@domain.tld" address without the optional 3668address extension. 3669 3670<li> Look up the "user+extension" address local part when the 3671sender domain equals $myorigin, $mydestination, $inet_interfaces 3672or $proxy_interfaces. 3673 3674<li> Look up the "user" address local part when the sender domain 3675equals $myorigin, $mydestination, $inet_interfaces or $proxy_interfaces. 3676 3677<li> Look up the "@domain.tld" part. 3678 3679</ul> 3680 3681<p> 3682Specify the types and names of databases to use. After change, 3683run "<b>postmap /etc/postfix/sender_bcc</b>". 3684</p> 3685 3686<p> 3687Note: if mail to the BCC address bounces it will be returned to 3688the sender. 3689</p> 3690 3691<p> Note: automatic BCC recipients are produced only for new mail. 3692To avoid mailer loops, automatic BCC recipients are not generated 3693after Postfix forwards mail internally, or after Postfix generates 3694mail itself. </p> 3695 3696<p> 3697Example: 3698</p> 3699 3700<pre> 3701sender_bcc_maps = hash:/etc/postfix/sender_bcc 3702</pre> 3703 3704%PARAM sender_canonical_maps 3705 3706<p> 3707Optional address mapping lookup tables for envelope and header 3708sender addresses. 3709The table format and lookups are documented in canonical(5). 3710</p> 3711 3712<p> 3713Example: you want to rewrite the SENDER address "user@ugly.domain" 3714to "user@pretty.domain", while still being able to send mail to 3715the RECIPIENT address "user@ugly.domain". 3716</p> 3717 3718<p> 3719Note: $sender_canonical_maps is processed before $canonical_maps. 3720</p> 3721 3722<p> 3723Example: 3724</p> 3725 3726<pre> 3727sender_canonical_maps = hash:/etc/postfix/sender_canonical 3728</pre> 3729 3730%PARAM smtp_always_send_ehlo yes 3731 3732<p> 3733Always send EHLO at the start of an SMTP session. 3734</p> 3735 3736<p> 3737With "smtp_always_send_ehlo = no", the Postfix SMTP client sends 3738EHLO only when 3739the word "ESMTP" appears in the server greeting banner (example: 3740220 spike.porcupine.org ESMTP Postfix). 3741</p> 3742 3743%PARAM smtp_bind_address 3744 3745<p> 3746An optional numerical network address that the Postfix SMTP client 3747should bind to when making an IPv4 connection. 3748</p> 3749 3750<p> 3751This can be specified in the main.cf file for all SMTP clients, or 3752it can be specified in the master.cf file for a specific client, 3753for example: 3754</p> 3755 3756<blockquote> 3757<pre> 3758/etc/postfix/master.cf: 3759 smtp ... smtp -o smtp_bind_address=11.22.33.44 3760</pre> 3761</blockquote> 3762 3763<p> Note 1: when inet_interfaces specifies no more than one IPv4 3764address, and that address is a non-loopback address, it is 3765automatically used as the smtp_bind_address. This supports virtual 3766IP hosting, but can be a problem on multi-homed firewalls. See the 3767inet_interfaces documentation for more detail. </p> 3768 3769<p> Note 2: address information may be enclosed inside <tt>[]</tt>, 3770but this form is not required here. </p> 3771 3772%PARAM smtp_bind_address6 3773 3774<p> 3775An optional numerical network address that the Postfix SMTP client 3776should bind to when making an IPv6 connection. 3777</p> 3778 3779<p> This feature is available in Postfix 2.2 and later. </p> 3780 3781<p> 3782This can be specified in the main.cf file for all SMTP clients, or 3783it can be specified in the master.cf file for a specific client, 3784for example: 3785</p> 3786 3787<blockquote> 3788<pre> 3789/etc/postfix/master.cf: 3790 smtp ... smtp -o smtp_bind_address6=1:2:3:4:5:6:7:8 3791</pre> 3792</blockquote> 3793 3794<p> Note 1: when inet_interfaces specifies no more than one IPv6 3795address, and that address is a non-loopback address, it is 3796automatically used as the smtp_bind_address6. This supports virtual 3797IP hosting, but can be a problem on multi-homed firewalls. See the 3798inet_interfaces documentation for more detail. </p> 3799 3800<p> Note 2: address information may be enclosed inside <tt>[]</tt>, 3801but this form is not recommended here. </p> 3802 3803%PARAM smtp_connection_cache_time_limit 2s 3804 3805<p> When SMTP connection caching is enabled, the amount of time that 3806an unused SMTP client socket is kept open before it is closed. Do 3807not specify larger values without permission from the remote sites. 3808</p> 3809 3810<p> This feature is available in Postfix 2.2 and later. </p> 3811 3812%PARAM smtp_connection_cache_reuse_limit 10 3813 3814<p> When SMTP connection caching is enabled, the number of times that 3815an SMTP session may be reused before it is closed. 3816</p> 3817 3818<p> This feature is available in Postfix 2.2. In Postfix 2.3 it is 3819replaced by $smtp_connection_reuse_time_limit.</p> 3820 3821%PARAM smtp_connection_reuse_time_limit 300s 3822 3823<p> The amount of time during which Postfix will use an SMTP 3824connection repeatedly. The timer starts when the connection is 3825initiated (i.e. it includes the connect, greeting and helo latency, 3826in addition to the latencies of subsequent mail delivery transactions). 3827</p> 3828 3829<p> This feature addresses a performance stability problem with 3830remote SMTP servers. This problem is not specific to Postfix: it 3831can happen when any MTA sends large amounts of SMTP email to a site 3832that has multiple MX hosts. </p> 3833 3834<p> The problem starts when one of a set of MX hosts becomes slower 3835than the rest. Even though SMTP clients connect to fast and slow 3836MX hosts with equal probability, the slow MX host ends up with more 3837simultaneous inbound connections than the faster MX hosts, because 3838the slow MX host needs more time to serve each client request. </p> 3839 3840<p> The slow MX host becomes a connection attractor. If one MX 3841host becomes N times slower than the rest, it dominates mail delivery 3842latency unless there are more than N fast MX hosts to counter the 3843effect. And if the number of MX hosts is smaller than N, the mail 3844delivery latency becomes effectively that of the slowest MX host 3845divided by the total number of MX hosts. </p> 3846 3847<p> The solution uses connection caching in a way that differs from 3848Postfix version 2.2. By limiting the amount of time during which a connection 3849can be used repeatedly (instead of limiting the number of deliveries 3850over that connection), Postfix not only restores fairness in the 3851distribution of simultaneous connections across a set of MX hosts, 3852it also favors deliveries over connections that perform well, which 3853is exactly what we want. </p> 3854 3855<p> The default reuse time limit, 300s, is comparable to the various 3856smtp transaction timeouts which are fair estimates of maximum excess 3857latency for a slow delivery. Note that hosts may accept thousands 3858of messages over a single connection within the default connection 3859reuse time limit. This number is much larger than the default Postfix 3860version 2.2 limit of 10 messages per cached connection. It may prove necessary 3861to lower the limit to avoid interoperability issues with MTAs that 3862exhibit bugs when many messages are delivered via a single connection. 3863A lower reuse time limit risks losing the benefit of connection 3864reuse when the average connection and mail delivery latency exceeds 3865the reuse time limit. </p> 3866 3867<p> This feature is available in Postfix 2.3 and later. </p> 3868 3869%PARAM smtp_connection_cache_destinations 3870 3871<p> Permanently enable SMTP connection caching for the specified 3872destinations. With SMTP connection caching, a connection is not 3873closed immediately after completion of a mail transaction. Instead, 3874the connection is kept open for up to $smtp_connection_cache_time_limit 3875seconds. This allows connections to be reused for other deliveries, 3876and can improve mail delivery performance. </p> 3877 3878<p> Specify a comma or white space separated list of destinations 3879or pseudo-destinations: </p> 3880 3881<ul> 3882 3883<li> if mail is sent without a relay host: a domain name (the 3884right-hand side of an email address, without the [] around a numeric 3885IP address), 3886 3887<li> if mail is sent via a relay host: a relay host name (without 3888[] or non-default TCP port), as specified in main.cf or in the 3889transport map, 3890 3891<li> if mail is sent via a UNIX-domain socket: a pathname (without 3892the unix: prefix), 3893 3894<li> a /file/name with domain names and/or relay host names as 3895defined above, 3896 3897<li> a "type:table" with domain names and/or relay host names on 3898the left-hand side. The right-hand side result from "type:table" 3899lookups is ignored. 3900 3901</ul> 3902 3903<p> This feature is available in Postfix 2.2 and later. </p> 3904 3905%PARAM smtp_connection_cache_on_demand yes 3906 3907<p> Temporarily enable SMTP connection caching while a destination 3908has a high volume of mail in the active queue. With SMTP connection 3909caching, a connection is not closed immediately after completion 3910of a mail transaction. Instead, the connection is kept open for 3911up to $smtp_connection_cache_time_limit seconds. This allows 3912connections to be reused for other deliveries, and can improve mail 3913delivery performance. </p> 3914 3915<p> This feature is available in Postfix 2.2 and later. </p> 3916 3917%PARAM smtp_connect_timeout 30s 3918 3919<p> 3920The Postfix SMTP client time limit for completing a TCP connection, or 3921zero (use the operating system built-in time limit). 3922</p> 3923 3924<p> 3925When no connection can be made within the deadline, the Postfix 3926SMTP client 3927tries the next address on the mail exchanger list. Specify 0 to 3928disable the time limit (i.e. use whatever timeout is implemented by 3929the operating system). 3930</p> 3931 3932<p> 3933Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3934The default time unit is s (seconds). 3935</p> 3936 3937%PARAM smtp_data_done_timeout 600s 3938 3939<p> 3940The Postfix SMTP client time limit for sending the SMTP ".", and 3941for receiving the remote SMTP server response. 3942</p> 3943 3944<p> 3945When no response is received within the deadline, a warning is 3946logged that the mail may be delivered multiple times. 3947</p> 3948 3949<p> 3950Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3951The default time unit is s (seconds). 3952</p> 3953 3954%PARAM smtp_data_init_timeout 120s 3955 3956<p> 3957The Postfix SMTP client time limit for sending the SMTP DATA command, 3958and for receiving the remote SMTP server response. 3959</p> 3960 3961<p> 3962Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3963The default time unit is s (seconds). 3964</p> 3965 3966%PARAM smtp_data_xfer_timeout 180s 3967 3968<p> 3969The Postfix SMTP client time limit for sending the SMTP message content. 3970When the connection makes no progress for more than $smtp_data_xfer_timeout 3971seconds the Postfix SMTP client terminates the transfer. 3972</p> 3973 3974<p> 3975Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 3976The default time unit is s (seconds). 3977</p> 3978 3979%PARAM smtp_defer_if_no_mx_address_found no 3980 3981<p> 3982Defer mail delivery when no MX record resolves to an IP address. 3983</p> 3984 3985<p> 3986The default (no) is to return the mail as undeliverable. With older 3987Postfix versions the default was to keep trying to deliver the mail 3988until someone fixed the MX record or until the mail was too old. 3989</p> 3990 3991<p> 3992Note: the Postfix SMTP client always ignores MX records with equal 3993or worse preference 3994than the local MTA itself. 3995</p> 3996 3997<p> 3998This feature is available in Postfix 2.1 and later. 3999</p> 4000 4001%PARAM lmtp_destination_concurrency_limit $default_destination_concurrency_limit 4002 4003<p> The maximal number of parallel deliveries to the same destination 4004via the lmtp message delivery transport. This limit is enforced by 4005the queue manager. The message delivery transport name is the first 4006field in the entry in the master.cf file. </p> 4007 4008%PARAM lmtp_destination_recipient_limit $default_destination_recipient_limit 4009 4010<p> The maximal number of recipients per message for the lmtp 4011message delivery transport. This limit is enforced by the queue 4012manager. The message delivery transport name is the first field in 4013the entry in the master.cf file. </p> 4014 4015<p> Setting this parameter to a value of 1 changes the meaning of 4016lmtp_destination_concurrency_limit from concurrency per domain into 4017concurrency per recipient. </p> 4018 4019%PARAM relay_destination_concurrency_limit $default_destination_concurrency_limit 4020 4021<p> The maximal number of parallel deliveries to the same destination 4022via the relay message delivery transport. This limit is enforced 4023by the queue manager. The message delivery transport name is the 4024first field in the entry in the master.cf file. </p> 4025 4026<p> This feature is available in Postfix 2.0 and later. </p> 4027 4028%PARAM relay_destination_recipient_limit $default_destination_recipient_limit 4029 4030<p> The maximal number of recipients per message for the relay 4031message delivery transport. This limit is enforced by the queue 4032manager. The message delivery transport name is the first field in 4033the entry in the master.cf file. </p> 4034 4035<p> Setting this parameter to a value of 1 changes the meaning of 4036relay_destination_concurrency_limit from concurrency per domain 4037into concurrency per recipient. </p> 4038 4039<p> This feature is available in Postfix 2.0 and later. </p> 4040 4041%PARAM smtp_destination_concurrency_limit $default_destination_concurrency_limit 4042 4043<p> The maximal number of parallel deliveries to the same destination 4044via the smtp message delivery transport. This limit is enforced by 4045the queue manager. The message delivery transport name is the first 4046field in the entry in the master.cf file. </p> 4047 4048%PARAM smtp_destination_recipient_limit $default_destination_recipient_limit 4049 4050<p> The maximal number of recipients per message for the smtp 4051message delivery transport. This limit is enforced by the queue 4052manager. The message delivery transport name is the first field in 4053the entry in the master.cf file. </p> 4054 4055<p> Setting this parameter to a value of 1 changes the meaning of 4056smtp_destination_concurrency_limit from concurrency per domain 4057into concurrency per recipient. </p> 4058 4059%PARAM virtual_destination_concurrency_limit $default_destination_concurrency_limit 4060 4061<p> The maximal number of parallel deliveries to the same destination 4062via the virtual message delivery transport. This limit is enforced 4063by the queue manager. The message delivery transport name is the 4064first field in the entry in the master.cf file. </p> 4065 4066%PARAM virtual_destination_recipient_limit $default_destination_recipient_limit 4067 4068<p> The maximal number of recipients per message for the virtual 4069message delivery transport. This limit is enforced by the queue 4070manager. The message delivery transport name is the first field in 4071the entry in the master.cf file. </p> 4072 4073<p> Setting this parameter to a value of 1 changes the meaning of 4074virtual_destination_concurrency_limit from concurrency per domain 4075into concurrency per recipient. </p> 4076 4077%PARAM smtp_helo_name $myhostname 4078 4079<p> 4080The hostname to send in the SMTP EHLO or HELO command. 4081</p> 4082 4083<p> 4084The default value is the machine hostname. Specify a hostname or 4085[ip.add.re.ss]. 4086</p> 4087 4088<p> 4089This information can be specified in the main.cf file for all SMTP 4090clients, or it can be specified in the master.cf file for a specific 4091client, for example: 4092</p> 4093 4094<blockquote> 4095<pre> 4096/etc/postfix/master.cf: 4097 mysmtp ... smtp -o smtp_helo_name=foo.bar.com 4098</pre> 4099</blockquote> 4100 4101<p> 4102This feature is available in Postfix 2.0 and later. 4103</p> 4104 4105%PARAM smtp_helo_timeout 300s 4106 4107<p> 4108The Postfix SMTP client time limit for sending the HELO or EHLO command, 4109and for receiving the initial remote SMTP server response. 4110</p> 4111 4112<p> 4113Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 4114The default time unit is s (seconds). 4115</p> 4116 4117%PARAM smtp_host_lookup dns 4118 4119<p> 4120What mechanisms the Postfix SMTP client uses to look up a host's IP 4121address. This parameter is ignored when DNS lookups are disabled 4122(see: disable_dns_lookups). 4123</p> 4124 4125<p> 4126Specify one of the following: 4127</p> 4128 4129<dl> 4130 4131<dt><b>dns</b></dt> 4132 4133<dd>Hosts can be found in the DNS (preferred). </dd> 4134 4135<dt><b>native</b></dt> 4136 4137<dd>Use the native naming service only (nsswitch.conf, or equivalent 4138mechanism). </dd> 4139 4140<dt><b>dns, native</b></dt> 4141 4142<dd>Use the native service for hosts not found in the DNS. </dd> 4143 4144</dl> 4145 4146<p> 4147This feature is available in Postfix 2.1 and later. 4148</p> 4149 4150%PARAM smtp_line_length_limit 998 4151 4152<p> 4153The maximal length of message header and body lines that Postfix 4154will send via SMTP. This limit does not include the <CR><LF> 4155at the end of each line. Longer lines are broken by inserting 4156"<CR><LF><SPACE>", to minimize the damage to MIME 4157formatted mail. 4158</p> 4159 4160<p> 4161The Postfix limit of 998 characters not including <CR><LF> 4162is consistent with the SMTP limit of 1000 characters including 4163<CR><LF>. The Postfix limit was 990 with Postfix 2.8 4164and earlier. 4165</p> 4166 4167%PARAM smtp_mail_timeout 300s 4168 4169<p> 4170The Postfix SMTP client time limit for sending the MAIL FROM command, 4171and for receiving the remote SMTP server response. 4172</p> 4173 4174<p> 4175Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 4176The default time unit is s (seconds). 4177</p> 4178 4179%PARAM smtp_mx_address_limit 5 4180 4181<p> 4182The maximal number of MX (mail exchanger) IP addresses that can 4183result from Postfix SMTP client mail exchanger lookups, or zero (no 4184limit). Prior to 4185Postfix version 2.3, this limit was disabled by default. 4186</p> 4187 4188<p> 4189This feature is available in Postfix 2.1 and later. 4190</p> 4191 4192%PARAM smtp_mx_session_limit 2 4193 4194<p> The maximal number of SMTP sessions per delivery request before 4195the Postfix SMTP client 4196gives up or delivers to a fall-back relay host, or zero (no 4197limit). This restriction ignores sessions that fail to complete the 4198SMTP initial handshake (Postfix version 2.2 and earlier) or that fail to 4199complete the EHLO and TLS handshake (Postfix version 2.3 and later). </p> 4200 4201<p> This feature is available in Postfix 2.1 and later. </p> 4202 4203%PARAM smtp_never_send_ehlo no 4204 4205<p> Never send EHLO at the start of an SMTP session. See also the 4206smtp_always_send_ehlo parameter. </p> 4207 4208%PARAM smtp_pix_workaround_threshold_time 500s 4209 4210<p> How long a message must be queued before the Postfix SMTP client 4211turns on the PIX firewall "<CR><LF>.<CR><LF>" 4212bug workaround for delivery through firewalls with "smtp fixup" 4213mode turned on. </p> 4214 4215<p> 4216By default, the workaround is turned off for mail that is queued 4217for less than 500 seconds. In other words, the workaround is normally 4218turned off for the first delivery attempt. 4219</p> 4220 4221<p> 4222Specify 0 to enable the PIX firewall 4223"<CR><LF>.<CR><LF>" bug workaround upon the 4224first delivery attempt. 4225</p> 4226 4227%PARAM smtp_quit_timeout 300s 4228 4229<p> 4230The Postfix SMTP client time limit for sending the QUIT command, 4231and for receiving the remote SMTP server response. 4232</p> 4233 4234<p> 4235Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 4236The default time unit is s (seconds). 4237</p> 4238 4239%PARAM smtp_quote_rfc821_envelope yes 4240 4241<p> 4242Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands 4243as required 4244by RFC 2821. This includes putting quotes around an address localpart 4245that ends in ".". 4246</p> 4247 4248<p> 4249The default is to comply with RFC 2821. If you have to send mail to 4250a broken SMTP server, configure a special SMTP client in master.cf: 4251</p> 4252 4253<blockquote> 4254<pre> 4255/etc/postfix/master.cf: 4256 broken-smtp . . . smtp -o smtp_quote_rfc821_envelope=no 4257</pre> 4258</blockquote> 4259 4260<p> 4261and route mail for the destination in question to the "broken-smtp" 4262message delivery with a transport(5) table. 4263</p> 4264 4265<p> 4266This feature is available in Postfix 2.1 and later. 4267</p> 4268 4269%PARAM smtp_rcpt_timeout 300s 4270 4271<p> 4272The Postfix SMTP client time limit for sending the SMTP RCPT TO 4273command, and for receiving the remote SMTP server response. 4274</p> 4275 4276<p> 4277Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 4278The default time unit is s (seconds). 4279</p> 4280 4281%PARAM smtp_sasl_auth_enable no 4282 4283<p> 4284Enable SASL authentication in the Postfix SMTP client. By default, 4285the Postfix SMTP client uses no authentication. 4286</p> 4287 4288<p> 4289Example: 4290</p> 4291 4292<pre> 4293smtp_sasl_auth_enable = yes 4294</pre> 4295 4296%PARAM smtp_sasl_password_maps 4297 4298<p> 4299Optional Postfix SMTP client lookup tables with one username:password 4300entry 4301per remote hostname or domain, or sender address when sender-dependent 4302authentication is enabled. If no username:password entry is found, 4303then the Postfix SMTP client will not 4304attempt to authenticate to the remote host. 4305</p> 4306 4307<p> 4308The Postfix SMTP client opens the lookup table before going to 4309chroot jail, so you can leave the password file in /etc/postfix. 4310</p> 4311 4312%PARAM smtp_sasl_security_options noplaintext, noanonymous 4313 4314<p> Postfix SMTP client SASL security options; as of Postfix 2.3 4315the list of available 4316features depends on the SASL client implementation that is selected 4317with <b>smtp_sasl_type</b>. </p> 4318 4319<p> The following security features are defined for the <b>cyrus</b> 4320client SASL implementation: </p> 4321 4322<p> 4323Specify zero or more of the following: 4324</p> 4325 4326<dl> 4327 4328<dt><b>noplaintext</b></dt> 4329 4330<dd>Disallow methods that use plaintext passwords. </dd> 4331 4332<dt><b>noactive</b></dt> 4333 4334<dd>Disallow methods subject to active (non-dictionary) attack. 4335</dd> 4336 4337<dt><b>nodictionary</b></dt> 4338 4339<dd>Disallow methods subject to passive (dictionary) attack. </dd> 4340 4341<dt><b>noanonymous</b></dt> 4342 4343<dd>Disallow methods that allow anonymous authentication. </dd> 4344 4345<dt><b>mutual_auth</b></dt> 4346 4347<dd>Only allow methods that provide mutual authentication (not 4348available with SASL version 1). </dd> 4349 4350</dl> 4351 4352<p> 4353Example: 4354</p> 4355 4356<pre> 4357smtp_sasl_security_options = noplaintext 4358</pre> 4359 4360%PARAM smtp_sasl_mechanism_filter 4361 4362<p> 4363If non-empty, a Postfix SMTP client filter for the remote SMTP 4364server's list of offered SASL mechanisms. Different client and 4365server implementations may support different mechanism lists. By 4366default, the Postfix SMTP client will use the intersection of the 4367two. smtp_sasl_mechanism_filter further restricts what server 4368mechanisms the client will take into consideration. </p> 4369 4370<p> Specify mechanism names, "/file/name" patterns or "type:table" 4371lookup tables. The right-hand side result from "type:table" lookups 4372is ignored. Specify "!pattern" to exclude a mechanism name from the 4373list. The form "!/file/name" is supported only in Postfix version 43742.4 and later. </p> 4375 4376<p> This feature is available in Postfix 2.2 and later. </p> 4377 4378<p> 4379Examples: 4380</p> 4381 4382<pre> 4383smtp_sasl_mechanism_filter = plain, login 4384smtp_sasl_mechanism_filter = /etc/postfix/smtp_mechs 4385smtp_sasl_mechanism_filter = !gssapi, !login, static:rest 4386</pre> 4387 4388%PARAM smtp_send_xforward_command no 4389 4390<p> 4391Send the non-standard XFORWARD command when the Postfix SMTP server 4392EHLO response announces XFORWARD support. 4393</p> 4394 4395<p> 4396This allows a Postfix SMTP delivery agent, used for injecting mail 4397into 4398a content filter, to forward the name, address, protocol and HELO 4399name of the original client to the content filter and downstream 4400queuing SMTP server. This can produce more useful logging than 4401localhost[127.0.0.1] etc. 4402</p> 4403 4404<p> 4405This feature is available in Postfix 2.1 and later. 4406</p> 4407 4408%PARAM smtp_skip_4xx_greeting yes 4409 4410<p> 4411Skip SMTP servers that greet with a 4XX status code (go away, try 4412again later). 4413</p> 4414 4415<p> 4416By default, the Postfix SMTP client moves on the next mail exchanger. 4417Specify 4418"smtp_skip_4xx_greeting = no" if Postfix should defer delivery 4419immediately. 4420</p> 4421 4422<p> This feature is available in Postfix 2.0 and earlier. 4423Later Postfix versions always skip remote SMTP servers that greet 4424with a 44254XX status code. </p> 4426 4427%PARAM smtp_skip_5xx_greeting yes 4428 4429<p> 4430Skip remote SMTP servers that greet with a 5XX status code (go away, 4431do 4432not try again later). 4433</p> 4434 4435<p> By default, the Postfix SMTP client moves on the next mail 4436exchanger. Specify "smtp_skip_5xx_greeting = no" if Postfix should 4437bounce the mail immediately. The default setting is incorrect, but 4438it is what a lot of people expect to happen. </p> 4439 4440%PARAM smtp_skip_quit_response yes 4441 4442<p> 4443Do not wait for the response to the SMTP QUIT command. 4444</p> 4445 4446%PARAM smtp_xforward_timeout 300s 4447 4448<p> 4449The Postfix SMTP client time limit for sending the XFORWARD command, 4450and for receiving the remote SMTP server response. 4451</p> 4452 4453<p> 4454Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 4455The default time unit is s (seconds). 4456</p> 4457 4458<p> 4459This feature is available in Postfix 2.1 and later. 4460</p> 4461 4462%PARAM authorized_verp_clients $mynetworks 4463 4464<p> What remote SMTP clients are allowed to specify the XVERP command. 4465This command requests that mail be delivered one recipient at a 4466time with a per recipient return address. </p> 4467 4468<p> By default, only trusted clients are allowed to specify XVERP. 4469</p> 4470 4471<p> This parameter was introduced with Postfix version 1.1. Postfix 4472version 2.1 renamed this parameter to smtpd_authorized_verp_clients 4473and changed the default to none. </p> 4474 4475<p> Specify a list of network/netmask patterns, separated by commas 4476and/or whitespace. The mask specifies the number of bits in the 4477network part of a host address. You can also specify hostnames or 4478.domain names (the initial dot causes the domain to match any name 4479below it), "/file/name" or "type:table" patterns. A "/file/name" 4480pattern is replaced by its contents; a "type:table" lookup table 4481is matched when a table entry matches a lookup string (the lookup 4482result is ignored). Continue long lines by starting the next line 4483with whitespace. Specify "!pattern" to exclude an address or network 4484block from the list. The form "!/file/name" is supported only in 4485Postfix version 2.4 and later. </p> 4486 4487<p> Note: IP version 6 address information must be specified inside 4488<tt>[]</tt> in the authorized_verp_clients value, and in files 4489specified with "/file/name". IP version 6 addresses contain the 4490":" character, and would otherwise be confused with a "type:table" 4491pattern. </p> 4492 4493%PARAM smtpd_authorized_verp_clients $authorized_verp_clients 4494 4495<p> What remote SMTP clients are allowed to specify the XVERP command. 4496This command requests that mail be delivered one recipient at a 4497time with a per recipient return address. </p> 4498 4499<p> By default, no clients are allowed to specify XVERP. </p> 4500 4501<p> This parameter was renamed with Postfix version 2.1. The default value 4502is backwards compatible with Postfix version 2.0. </p> 4503 4504<p> Specify a list of network/netmask patterns, separated by commas 4505and/or whitespace. The mask specifies the number of bits in the 4506network part of a host address. You can also specify hostnames or 4507.domain names (the initial dot causes the domain to match any name 4508below it), "/file/name" or "type:table" patterns. A "/file/name" 4509pattern is replaced by its contents; a "type:table" lookup table 4510is matched when a table entry matches a lookup string (the lookup 4511result is ignored). Continue long lines by starting the next line 4512with whitespace. Specify "!pattern" to exclude an address or network 4513block from the list. The form "!/file/name" is supported only in 4514Postfix version 2.4 and later. </p> 4515 4516<p> Note: IP version 6 address information must be specified inside 4517<tt>[]</tt> in the smtpd_authorized_verp_clients value, and in 4518files specified with "/file/name". IP version 6 addresses contain 4519the ":" character, and would otherwise be confused with a "type:table" 4520pattern. </p> 4521 4522%PARAM smtpd_authorized_xclient_hosts 4523 4524<p> 4525What remote SMTP clients are allowed to use the XCLIENT feature. This 4526command overrides remote SMTP client information that is used for access 4527control. Typical use is for SMTP-based content filters, fetchmail-like 4528programs, or SMTP server access rule testing. See the XCLIENT_README 4529document for details. 4530</p> 4531 4532<p> 4533This feature is available in Postfix 2.1 and later. 4534</p> 4535 4536<p> 4537By default, no clients are allowed to specify XCLIENT. 4538</p> 4539 4540<p> 4541Specify a list of network/netmask patterns, separated by commas 4542and/or whitespace. The mask specifies the number of bits in the 4543network part of a host address. You can also specify hostnames or 4544.domain names (the initial dot causes the domain to match any name 4545below it), "/file/name" or "type:table" patterns. A "/file/name" 4546pattern is replaced by its contents; a "type:table" lookup table 4547is matched when a table entry matches a lookup string (the lookup 4548result is ignored). Continue long lines by starting the next line 4549with whitespace. Specify "!pattern" to exclude an address or network 4550block from the list. The form "!/file/name" is supported only in 4551Postfix version 2.4 and later. </p> 4552 4553<p> Note: IP version 6 address information must be specified inside 4554<tt>[]</tt> in the smtpd_authorized_xclient_hosts value, and in 4555files specified with "/file/name". IP version 6 addresses contain 4556the ":" character, and would otherwise be confused with a "type:table" 4557pattern. </p> 4558 4559%PARAM smtpd_authorized_xforward_hosts 4560 4561<p> 4562What remote SMTP clients are allowed to use the XFORWARD feature. This 4563command forwards information that is used to improve logging after 4564SMTP-based content filters. See the XFORWARD_README document for 4565details. 4566</p> 4567 4568<p> 4569This feature is available in Postfix 2.1 and later. 4570</p> 4571 4572<p> 4573By default, no clients are allowed to specify XFORWARD. 4574</p> 4575 4576<p> 4577Specify a list of network/netmask patterns, separated by commas 4578and/or whitespace. The mask specifies the number of bits in the 4579network part of a host address. You can also specify hostnames or 4580.domain names (the initial dot causes the domain to match any name 4581below it), "/file/name" or "type:table" patterns. A "/file/name" 4582pattern is replaced by its contents; a "type:table" lookup table 4583is matched when a table entry matches a lookup string (the lookup 4584result is ignored). Continue long lines by starting the next line 4585with whitespace. Specify "!pattern" to exclude an address or network 4586block from the list. The form "!/file/name" is supported only in 4587Postfix version 2.4 and later. </p> 4588 4589<p> Note: IP version 6 address information must be specified inside 4590<tt>[]</tt> in the smtpd_authorized_xforward_hosts value, and in 4591files specified with "/file/name". IP version 6 addresses contain 4592the ":" character, and would otherwise be confused with a "type:table" 4593pattern. </p> 4594 4595%PARAM smtpd_banner $myhostname ESMTP $mail_name 4596 4597<p> 4598The text that follows the 220 status code in the SMTP greeting 4599banner. Some people like to see the mail version advertised. By 4600default, Postfix shows no version. 4601</p> 4602 4603<p> 4604You MUST specify $myhostname at the start of the text. This is 4605required by the SMTP protocol. 4606</p> 4607 4608<p> 4609Example: 4610</p> 4611 4612<pre> 4613smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) 4614</pre> 4615 4616%PARAM smtpd_client_connection_count_limit 50 4617 4618<p> 4619How many simultaneous connections any client is allowed to 4620make to this service. By default, the limit is set to half 4621the default process limit value. 4622</p> 4623 4624<p> 4625To disable this feature, specify a limit of 0. 4626</p> 4627 4628<p> 4629WARNING: The purpose of this feature is to limit abuse. It must 4630not be used to regulate legitimate mail traffic. 4631</p> 4632 4633<p> 4634This feature is available in Postfix 2.2 and later. 4635</p> 4636 4637%PARAM smtpd_client_event_limit_exceptions $mynetworks 4638 4639<p> 4640Clients that are excluded from smtpd_client_*_count/rate_limit 4641restrictions. See the mynetworks parameter 4642description for the parameter value syntax. 4643</p> 4644 4645<p> 4646By default, clients in trusted networks are excluded. Specify a 4647list of network blocks, hostnames or .domain names (the initial 4648dot causes the domain to match any name below it). 4649</p> 4650 4651<p> Note: IP version 6 address information must be specified inside 4652<tt>[]</tt> in the smtpd_client_event_limit_exceptions value, and 4653in files specified with "/file/name". IP version 6 addresses 4654contain the ":" character, and would otherwise be confused with a 4655"type:table" pattern. </p> 4656 4657<p> 4658This feature is available in Postfix 2.2 and later. 4659</p> 4660 4661%PARAM smtpd_client_connection_rate_limit 0 4662 4663<p> 4664The maximal number of connection attempts any client is allowed to 4665make to this service per time unit. The time unit is specified 4666with the anvil_rate_time_unit configuration parameter. 4667</p> 4668 4669<p> 4670By default, a client can make as many connections per time unit as 4671Postfix can accept. 4672</p> 4673 4674<p> 4675To disable this feature, specify a limit of 0. 4676</p> 4677 4678<p> 4679WARNING: The purpose of this feature is to limit abuse. It must 4680not be used to regulate legitimate mail traffic. 4681</p> 4682 4683<p> 4684This feature is available in Postfix 2.2 and later. 4685</p> 4686 4687<p> 4688Example: 4689</p> 4690 4691<pre> 4692smtpd_client_connection_rate_limit = 1000 4693</pre> 4694 4695%PARAM smtpd_client_message_rate_limit 0 4696 4697<p> 4698The maximal number of message delivery requests that any client is 4699allowed to make to this service per time unit, regardless of whether 4700or not Postfix actually accepts those messages. The time unit is 4701specified with the anvil_rate_time_unit configuration parameter. 4702</p> 4703 4704<p> 4705By default, a client can send as many message delivery requests 4706per time unit as Postfix can accept. 4707</p> 4708 4709<p> 4710To disable this feature, specify a limit of 0. 4711</p> 4712 4713<p> 4714WARNING: The purpose of this feature is to limit abuse. It must 4715not be used to regulate legitimate mail traffic. 4716</p> 4717 4718<p> 4719This feature is available in Postfix 2.2 and later. 4720</p> 4721 4722<p> 4723Example: 4724</p> 4725 4726<pre> 4727smtpd_client_message_rate_limit = 1000 4728</pre> 4729 4730%PARAM smtpd_client_recipient_rate_limit 0 4731 4732<p> 4733The maximal number of recipient addresses that any client is allowed 4734to send to this service per time unit, regardless of whether or not 4735Postfix actually accepts those recipients. The time unit is specified 4736with the anvil_rate_time_unit configuration parameter. 4737</p> 4738 4739<p> 4740By default, a client can send as many recipient addresses per time 4741unit as Postfix can accept. 4742</p> 4743 4744<p> 4745To disable this feature, specify a limit of 0. 4746</p> 4747 4748<p> 4749WARNING: The purpose of this feature is to limit abuse. It must 4750not be used to regulate legitimate mail traffic. 4751</p> 4752 4753<p> 4754This feature is available in Postfix 2.2 and later. 4755</p> 4756 4757<p> 4758Example: 4759</p> 4760 4761<pre> 4762smtpd_client_recipient_rate_limit = 1000 4763</pre> 4764 4765%PARAM smtpd_client_new_tls_session_rate_limit 0 4766 4767<p> 4768The maximal number of new (i.e., uncached) TLS sessions that a 4769remote SMTP client is allowed to negotiate with this service per 4770time unit. The time unit is specified with the anvil_rate_time_unit 4771configuration parameter. 4772</p> 4773 4774<p> 4775By default, a remote SMTP client can negotiate as many new TLS 4776sessions per time unit as Postfix can accept. 4777</p> 4778 4779<p> 4780To disable this feature, specify a limit of 0. Otherwise, specify 4781a limit that is at least the per-client concurrent session limit, 4782or else legitimate client sessions may be rejected. 4783</p> 4784 4785<p> 4786WARNING: The purpose of this feature is to limit abuse. It must 4787not be used to regulate legitimate mail traffic. 4788</p> 4789 4790<p> 4791This feature is available in Postfix 2.3 and later. 4792</p> 4793 4794<p> 4795Example: 4796</p> 4797 4798<pre> 4799smtpd_client_new_tls_session_rate_limit = 100 4800</pre> 4801 4802%PARAM smtpd_client_restrictions 4803 4804<p> 4805Optional Postfix SMTP server access restrictions in the context of 4806a remote SMTP client connection request. 4807See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 4808restriction lists" for a discussion of evaluation context and time. 4809</p> 4810 4811<p> 4812The default is to allow all connection requests. 4813</p> 4814 4815<p> 4816Specify a list of restrictions, separated by commas and/or whitespace. 4817Continue long lines by starting the next line with whitespace. 4818Restrictions are applied in the order as specified; the first 4819restriction that matches wins. 4820</p> 4821 4822<p> 4823The following restrictions are specific to client hostname or 4824client network address information. 4825</p> 4826 4827<dl> 4828 4829<dt><b><a name="check_ccert_access">check_ccert_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4830 4831<dd> Use the remote SMTP client certificate fingerprint or the public key 4832fingerprint (Postfix 2.9 and later) as lookup key for the specified 4833access(5) database; with Postfix version 2.2, also require that the 4834remote SMTP client certificate is verified successfully. 4835The fingerprint digest algorithm is configurable via the 4836smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to 4837Postfix version 2.5). This feature is available with Postfix version 48382.2 and later. </dd> 4839 4840<dt><b><a name="check_client_access">check_client_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4841 4842<dd>Search the specified access database for the client hostname, 4843parent domains, client IP address, or networks obtained by stripping 4844least significant octets. See the access(5) manual page for details. </dd> 4845 4846<dt><b><a name="check_client_mx_access">check_client_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4847 4848<dd>Search the specified access(5) database for the MX hosts for the 4849client hostname, and execute the corresponding action. Note: a result 4850of "OK" is not allowed for safety reasons. Instead, use DUNNO in order 4851to exclude specific hosts from blacklists. This feature is available 4852in Postfix 2.7 and later. </dd> 4853 4854<dt><b><a name="check_client_ns_access">check_client_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4855 4856<dd>Search the specified access(5) database for the DNS servers for 4857the client hostname, and execute the corresponding action. Note: a 4858result of "OK" is not allowed for safety reasons. Instead, use DUNNO 4859in order to exclude specific hosts from blacklists. This feature is 4860available in Postfix 2.7 and later. </dd> 4861 4862<dt><b><a name="check_reverse_client_hostname_access">check_reverse_client_hostname_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4863 4864<dd>Search the specified access database for the unverified reverse 4865client hostname, parent domains, client IP address, or networks 4866obtained by stripping least significant octets. See the access(5) 4867manual page for details. Note: a result of "OK" is not allowed for 4868safety reasons. Instead, use DUNNO in order to exclude specific 4869hosts from blacklists. This feature is available in Postfix 2.6 4870and later.</dd> 4871 4872<dt><b><a name="check_reverse_client_hostname_mx_access">check_reverse_client_hostname_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4873 4874<dd>Search the specified access(5) database for the MX hosts for the 4875unverified reverse client hostname, and execute the corresponding 4876action. Note: a result of "OK" is not allowed for safety reasons. 4877Instead, use DUNNO in order to exclude specific hosts from blacklists. 4878This feature is available in Postfix 2.7 and later. </dd> 4879 4880<dt><b><a name="check_reverse_client_hostname_ns_access">check_reverse_client_hostname_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 4881 4882<dd>Search the specified access(5) database for the DNS servers for 4883the unverified reverse client hostname, and execute the corresponding 4884action. Note: a result of "OK" is not allowed for safety reasons. 4885Instead, use DUNNO in order to exclude specific hosts from blacklists. 4886This feature is available in Postfix 2.7 and later. </dd> 4887 4888<dt><b><a name="permit_inet_interfaces">permit_inet_interfaces</a></b></dt> 4889 4890<dd>Permit the request when the client IP address matches 4891$inet_interfaces. </dd> 4892 4893<dt><b><a name="permit_mynetworks">permit_mynetworks</a></b></dt> 4894 4895<dd>Permit the request when the client IP address matches any 4896network or network address listed in $mynetworks. </dd> 4897 4898<dt><b><a name="permit_sasl_authenticated">permit_sasl_authenticated</a></b></dt> 4899 4900<dd> Permit the request when the client is successfully 4901authenticated via the RFC 4954 (AUTH) protocol. </dd> 4902 4903 4904<dt><b><a name="permit_tls_all_clientcerts">permit_tls_all_clientcerts</a></b></dt> 4905 4906<dd> Permit the request when the remote SMTP client certificate is 4907verified successfully. This option must be used only if a special 4908CA issues the certificates and only this CA is listed as trusted 4909CA. Otherwise, clients with a third-party certificate would also 4910be allowed to relay. Specify "tls_append_default_CA = no" when the 4911trusted CA is specified with smtpd_tls_CAfile or smtpd_tls_CApath, 4912to prevent Postfix from appending the system-supplied default CAs. 4913This feature is available with Postfix version 2.2.</dd> 4914 4915<dt><b><a name="permit_tls_clientcerts">permit_tls_clientcerts</a></b></dt> 4916 4917<dd>Permit the request when the remote SMTP client certificate 4918fingerprint or public key fingerprint (Postfix 2.9 and later) is 4919listed in $relay_clientcerts. 4920The fingerprint digest algorithm is configurable via the 4921smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to 4922Postfix version 2.5). This feature is available with Postfix version 49232.2. </dd> 4924 4925<dt><b><a name="reject_rbl_client">reject_rbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt> 4926 4927<dd>Reject the request when the reversed client network address is 4928listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> 4929(Postfix version 2.1 and later only). Each "<i>d</i>" is a number, 4930or a pattern inside "[]" that contains one or more ";"-separated 4931numbers or number..number ranges (Postfix version 2.8 and later). 4932If no "<i>=d.d.d.d</i>" is specified, reject the request when the 4933reversed client network address is listed with any A record under 4934<i>rbl_domain</i>. <br> 4935The maps_rbl_reject_code parameter specifies the response code for 4936rejected requests (default: 554), the default_rbl_reply parameter 4937specifies the default server reply, and the rbl_reply_maps parameter 4938specifies tables with server replies indexed by <i>rbl_domain</i>. 4939This feature is available in Postfix 2.0 and later. </dd> 4940 4941<dt><b><a name="permit_dnswl_client">permit_dnswl_client <i>dnswl_domain=d.d.d.d</i></a></b></dt> 4942 4943<dd>Accept the request when the reversed client network address is 4944listed with the A record "<i>d.d.d.d</i>" under <i>dnswl_domain</i>. 4945Each "<i>d</i>" is a number, or a pattern inside "[]" that contains 4946one or more ";"-separated numbers or number..number ranges. 4947If no "<i>=d.d.d.d</i>" is specified, accept the request when the 4948reversed client network address is listed with any A record under 4949<i>dnswl_domain</i>. <br> For safety, permit_dnswl_client is silently 4950ignored when it would override reject_unauth_destination. The 4951result is DEFER_IF_REJECT when whitelist lookup fails. This feature 4952is available in Postfix 2.8 and later. </dd> 4953 4954<dt><b><a name="reject_rhsbl_client">reject_rhsbl_client <i>rbl_domain=d.d.d.d</i></a></b></dt> 4955 4956<dd>Reject the request when the client hostname is listed with the 4957A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version 49582.1 and later only). Each "<i>d</i>" is a number, or a pattern 4959inside "[]" that contains one or more ";"-separated numbers or 4960number..number ranges (Postfix version 2.8 and later). If no 4961"<i>=d.d.d.d</i>" is specified, reject the request when the client 4962hostname is listed with 4963any A record under <i>rbl_domain</i>. See the reject_rbl_client 4964description above for additional RBL related configuration parameters. 4965This feature is available in Postfix 2.0 and later; with Postfix 4966version 2.8 and later, reject_rhsbl_reverse_client will usually 4967produce better results. </dd> 4968 4969<dt><b><a name="permit_rhswl_client">permit_rhswl_client <i>rhswl_domain=d.d.d.d</i></a></b></dt> 4970 4971<dd>Accept the request when the client hostname is listed with the 4972A record "<i>d.d.d.d</i>" under <i>rhswl_domain</i>. Each "<i>d</i>" 4973is a number, or a pattern inside "[]" that contains one or more 4974";"-separated numbers or number..number ranges. If no 4975"<i>=d.d.d.d</i>" is specified, accept the request when the client 4976hostname is listed with any A record under <i>rhswl_domain</i>. 4977<br> Caution: client name whitelisting is fragile, since the client 4978name lookup can fail due to temporary outages. Client name 4979whitelisting should be used only to reduce false positives in e.g. 4980DNS-based blocklists, and not for making access rule exceptions. 4981<br> For safety, permit_rhswl_client is silently ignored when it 4982would override reject_unauth_destination. The result is DEFER_IF_REJECT 4983when whitelist lookup fails. This feature is available in Postfix 49842.8 and later. </dd> 4985 4986<dt><b><a name="reject_rhsbl_reverse_client">reject_rhsbl_reverse_client <i>rbl_domain=d.d.d.d</i></a></b></dt> 4987 4988<dd>Reject the request when the unverified reverse client hostname 4989is listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i>. 4990Each "<i>d</i>" is a number, or a pattern inside "[]" that contains 4991one or more ";"-separated numbers or number..number ranges. 4992If no "<i>=d.d.d.d</i>" is specified, reject the request when the 4993unverified reverse client hostname is listed with any A record under 4994<i>rbl_domain</i>. See the reject_rbl_client description above for 4995additional RBL related configuration parameters. This feature is 4996available in Postfix 2.8 and later. </dd> 4997 4998<dt><b><a name="reject_unknown_client_hostname">reject_unknown_client_hostname</a></b> (with Postfix < 2.3: reject_unknown_client)</dt> 4999 5000<dd>Reject the request when 1) the client IP address->name mapping 5001fails, 2) the name->address mapping fails, or 3) the name->address 5002mapping does not match the client IP address. <br> This is a 5003stronger restriction than the reject_unknown_reverse_client_hostname 5004feature, which triggers only under condition 1) above. <br> The 5005unknown_client_reject_code parameter specifies the response code 5006for rejected requests (default: 450). The reply is always 450 in 5007case the address->name or name->address lookup failed due to 5008a temporary problem. </dd> 5009 5010<dt><b><a name="reject_unknown_reverse_client_hostname">reject_unknown_reverse_client_hostname</a></b></dt> 5011 5012<dd>Reject the request when the client IP address has no address->name 5013mapping. <br> This is a weaker restriction than the 5014reject_unknown_client_hostname feature, which requires not only 5015that the address->name and name->address mappings exist, but 5016also that the two mappings reproduce the client IP address. <br> 5017The unknown_client_reject_code parameter specifies the response 5018code for rejected requests (default: 450). The reply is always 450 5019in case the address->name lookup failed due to a temporary 5020problem. <br> This feature is available in Postfix 2.3 and 5021later. </dd> 5022 5023#<dt><b><a name="reject_unknown_forward_client_hostname">reject_unknown_forward_client_hostname</a></b></dt> 5024# 5025#<dd>Reject the request when the client IP address has no address->name 5026#or name ->address mapping. <br> This is a weaker restriction 5027#than the reject_unknown_client_hostname feature, which requires not 5028#only that the address->name and name->address mappings exist, 5029#but also that the two mappings reproduce the client IP address. 5030#<br> The unknown_client_reject_code parameter specifies the response 5031#code for rejected requests (default: 450). The reply is always 450 5032#in case the address->name or name ->address lookup failed due 5033#to a temporary problem. <br> This feature is available in Postfix 5034#version 2.3 and later. </dd> 5035 5036</dl> 5037 5038<p> 5039In addition, you can use any of the following <a name="generic"> 5040generic</a> restrictions. These restrictions are applicable in 5041any SMTP command context. 5042</p> 5043 5044<dl> 5045 5046<dt><b><a name="check_policy_service">check_policy_service <i>servername</i></a></b></dt> 5047 5048<dd>Query the specified policy server. See the SMTPD_POLICY_README 5049document for details. This feature is available in Postfix 2.1 5050and later. </dd> 5051 5052<dt><b><a name="defer">defer</a></b></dt> 5053 5054<dd>Defer the request. The client is told to try again later. This 5055restriction is useful at the end of a restriction list, to make 5056the default policy explicit. <br> The defer_code parameter specifies 5057the SMTP server reply code (default: 450).</dd> 5058 5059<dt><b><a name="defer_if_permit">defer_if_permit</a></b></dt> 5060 5061<dd>Defer the request if some later restriction would result in an 5062explicit or implicit PERMIT action. This is useful when a blacklisting 5063feature fails due to a temporary problem. This feature is available 5064in Postfix version 2.1 and later. </dd> 5065 5066<dt><b><a name="defer_if_reject">defer_if_reject</a></b></dt> 5067 5068<dd>Defer the request if some later restriction would result in a 5069REJECT action. This is useful when a whitelisting feature fails 5070due to a temporary problem. This feature is available in Postfix 5071version 2.1 and later. </dd> 5072 5073<dt><b><a name="permit">permit</a></b></dt> 5074 5075<dd>Permit the request. This restriction is useful at the end of 5076a restriction list, to make the default policy explicit.</dd> 5077 5078<dt><b><a name="reject_multi_recipient_bounce">reject_multi_recipient_bounce</a></b></dt> 5079 5080<dd>Reject the request when the envelope sender is the null address, 5081and the message has multiple envelope recipients. This usage has 5082rare but legitimate applications: under certain conditions, 5083multi-recipient mail that was posted with the DSN option NOTIFY=NEVER 5084may be forwarded with the null sender address. 5085<br> Note: this restriction can only work reliably 5086when used in smtpd_data_restrictions or 5087smtpd_end_of_data_restrictions, because the total number of 5088recipients is not known at an earlier stage of the SMTP conversation. 5089Use at the RCPT stage will only reject the second etc. recipient. 5090<br> 5091The multi_recipient_bounce_reject_code parameter specifies the 5092response code for rejected requests (default: 550). This feature 5093is available in Postfix 2.1 and later. </dd> 5094 5095<dt><b><a name="reject_plaintext_session">reject_plaintext_session</a></b></dt> 5096 5097<dd>Reject the request when the connection is not encrypted. This 5098restriction should not be used before the client has had a chance 5099to negotiate encryption with the AUTH or STARTTLS commands. 5100<br> 5101The plaintext_reject_code parameter specifies the response 5102code for rejected requests (default: 450). This feature is available 5103in Postfix 2.3 and later. </dd> 5104 5105<dt><b><a name="reject_unauth_pipelining">reject_unauth_pipelining</a></b></dt> 5106 5107<dd>Reject the request when the client sends SMTP commands ahead 5108of time where it is not allowed, or when the client sends SMTP 5109commands ahead of time without knowing that Postfix actually supports 5110ESMTP command pipelining. This stops mail from bulk mail software 5111that improperly uses ESMTP command pipelining in order to speed up 5112deliveries. 5113<br> With Postfix 2.6 and later, the SMTP server sets a per-session 5114flag whenever it detects illegal pipelining, including pipelined 5115EHLO or HELO commands. The reject_unauth_pipelining feature simply 5116tests whether the flag was set at any point in time during the 5117session. 5118<br> With older Postfix versions, reject_unauth_pipelining checks 5119the current status of the input read queue, and its usage is not 5120recommended in contexts other than smtpd_data_restrictions. </dd> 5121 5122<dt><b><a name="reject">reject</a></b></dt> 5123 5124<dd>Reject the request. This restriction is useful at the end of 5125a restriction list, to make the default policy explicit. The 5126reject_code configuration parameter specifies the response code for 5127rejected requests (default: 554).</dd> 5128 5129<dt><b><a name="sleep">sleep <i>seconds</i></a></b></dt> 5130 5131<dd>Pause for the specified number of seconds and proceed with 5132the next restriction in the list, if any. This may stop zombie 5133mail when used as: 5134<pre> 5135/etc/postfix/main.cf: 5136 smtpd_client_restrictions = 5137 sleep 1, reject_unauth_pipelining 5138 smtpd_delay_reject = no 5139</pre> 5140This feature is available in Postfix 2.3. </dd> 5141 5142<dt><b><a name="warn_if_reject">warn_if_reject</a></b></dt> 5143 5144<dd>Change the meaning of the next restriction, so that it logs 5145a warning instead of rejecting a request (look for logfile records 5146that contain "reject_warning"). This is useful for testing new 5147restrictions in a "live" environment without risking unnecessary 5148loss of mail. </dd> 5149 5150</dl> 5151 5152<p> 5153Other restrictions that are valid in this context: 5154</p> 5155 5156<ul> 5157 5158<li> SMTP command specific restrictions that are described under 5159the smtpd_helo_restrictions, smtpd_sender_restrictions or 5160smtpd_recipient_restrictions parameters. When helo, sender or 5161recipient restrictions are listed under smtpd_client_restrictions, 5162they have effect only with "smtpd_delay_reject = yes", so that 5163$smtpd_client_restrictions is evaluated at the time of the RCPT TO 5164command. 5165 5166</ul> 5167 5168<p> 5169Example: 5170</p> 5171 5172<pre> 5173smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname 5174</pre> 5175 5176%CLASS smtpd-tarpit Tarpit features 5177 5178<p> 5179When a remote SMTP client makes errors, the Postfix SMTP server 5180can insert delays before responding. This can help to slow down 5181run-away software. The behavior is controlled by an error counter 5182that counts the number of errors within an SMTP session that a 5183client makes without delivering mail. 5184</p> 5185 5186<ul> 5187 5188<li><p>When the error counter is less than $smtpd_soft_error_limit the 5189Postfix SMTP server replies immediately (Postfix version 2.0 and earlier 5190delay their 4xx or 5xx error response). </p> 5191 5192<li><p>When the error counter reaches $smtpd_soft_error_limit, the Postfix 5193SMTP server delays all its responses. </p> 5194 5195<li><p>When the error counter reaches $smtpd_hard_error_limit the Postfix 5196SMTP server breaks the connection. </p> 5197 5198</ul> 5199 5200%PARAM smtpd_error_sleep_time 1s 5201 5202<p>With Postfix version 2.1 and later: the SMTP server response delay after 5203a client has made more than $smtpd_soft_error_limit errors, and 5204fewer than $smtpd_hard_error_limit errors, without delivering mail. 5205</p> 5206 5207<p>With Postfix version 2.0 and earlier: the SMTP server delay before 5208sending a reject (4xx or 5xx) response, when the client has made 5209fewer than $smtpd_soft_error_limit errors without delivering 5210mail. </p> 5211 5212%PARAM smtpd_soft_error_limit 10 5213 5214<p> 5215The number of errors a remote SMTP client is allowed to make without 5216delivering mail before the Postfix SMTP server slows down all its 5217responses. 5218</p> 5219 5220<ul> 5221 5222<li><p>With Postfix version 2.1 and later, the Postfix SMTP server 5223delays all responses by $smtpd_error_sleep_time seconds. </p> 5224 5225<li><p>With Postfix versions 2.0 and earlier, the Postfix SMTP 5226server delays all responses by (number of errors) seconds. </p> 5227 5228</ul> 5229 5230%PARAM smtpd_hard_error_limit normal: 20, overload: 1 5231 5232<p> 5233The maximal number of errors a remote SMTP client is allowed to 5234make without delivering mail. The Postfix SMTP server disconnects 5235when the limit is exceeded. Normally the default limit is 20, but 5236it changes under overload to just 1. With Postfix 2.5 and earlier, 5237the SMTP server always allows up to 20 errors by default. 5238 5239</p> 5240 5241%PARAM smtpd_junk_command_limit normal: 100, overload: 1 5242 5243<p> 5244The number of junk commands (NOOP, VRFY, ETRN or RSET) that a remote 5245SMTP client can send before the Postfix SMTP server starts to 5246increment the error counter with each junk command. The junk 5247command count is reset after mail is delivered. See also the 5248smtpd_error_sleep_time and smtpd_soft_error_limit configuration 5249parameters. Normally the default limit is 100, but it changes under 5250overload to just 1. With Postfix 2.5 and earlier, the SMTP server 5251always allows up to 100 junk commands by default. </p> 5252 5253%PARAM smtpd_recipient_overshoot_limit 1000 5254 5255<p> The number of recipients that a remote SMTP client can send in 5256excess of the limit specified with $smtpd_recipient_limit, before 5257the Postfix SMTP server increments the per-session error count 5258for each excess recipient. </p> 5259 5260%PARAM smtpd_etrn_restrictions 5261 5262<p> 5263Optional SMTP server access restrictions in the context of a client 5264ETRN request. 5265See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 5266restriction lists" for a discussion of evaluation context and time. 5267</p> 5268 5269<p> 5270The Postfix ETRN implementation accepts only destinations that are 5271eligible for the Postfix "fast flush" service. See the ETRN_README 5272file for details. 5273</p> 5274 5275<p> 5276Specify a list of restrictions, separated by commas and/or whitespace. 5277Continue long lines by starting the next line with whitespace. 5278Restrictions are applied in the order as specified; the first 5279restriction that matches wins. 5280</p> 5281 5282<p> 5283The following restrictions are specific to the domain name information 5284received with the ETRN command. 5285</p> 5286 5287<dl> 5288 5289<dt><b><a name="check_etrn_access">check_etrn_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5290 5291<dd>Search the specified access database for the ETRN domain name 5292or its parent domains. See the access(5) manual page for details. 5293</dd> 5294 5295</dl> 5296 5297<p> 5298Other restrictions that are valid in this context: 5299</p> 5300 5301<ul> 5302 5303<li><a href="#generic">Generic</a> restrictions that can be used 5304in any SMTP command context, described under smtpd_client_restrictions. 5305 5306<li>SMTP command specific restrictions described under 5307smtpd_client_restrictions and smtpd_helo_restrictions. 5308 5309</ul> 5310 5311<p> 5312Example: 5313</p> 5314 5315<pre> 5316smtpd_etrn_restrictions = permit_mynetworks, reject 5317</pre> 5318 5319%PARAM smtpd_expansion_filter see "postconf -d" output 5320 5321<p> 5322What characters are allowed in $name expansions of RBL reply 5323templates. Characters not in the allowed set are replaced by "_". 5324Use C like escapes to specify special characters such as whitespace. 5325</p> 5326 5327<p> 5328This parameter is not subjected to $parameter expansion. 5329</p> 5330 5331<p> 5332This feature is available in Postfix 2.0 and later. 5333</p> 5334 5335%PARAM smtpd_forbidden_commands CONNECT, GET, POST 5336 5337<p> 5338List of commands that cause the Postfix SMTP server to immediately 5339terminate the session with a 221 code. This can be used to disconnect 5340clients that obviously attempt to abuse the system. In addition to the 5341commands listed in this parameter, commands that follow the "Label:" 5342format of message headers will also cause a disconnect. 5343</p> 5344 5345<p> 5346This feature is available in Postfix 2.2 and later. 5347</p> 5348 5349%PARAM smtpd_helo_required no 5350 5351<p> 5352Require that a remote SMTP client introduces itself with the HELO 5353or EHLO command before sending the MAIL command or other commands 5354that require EHLO negotiation. 5355</p> 5356 5357<p> 5358Example: 5359</p> 5360 5361<pre> 5362smtpd_helo_required = yes 5363</pre> 5364 5365%PARAM smtpd_helo_restrictions 5366 5367<p> 5368Optional restrictions that the Postfix SMTP server applies in the 5369context of the SMTP HELO command. 5370See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 5371restriction lists" for a discussion of evaluation context and time. 5372</p> 5373 5374<p> 5375The default is to permit everything. 5376</p> 5377 5378<p> Note: specify "smtpd_helo_required = yes" to fully enforce this 5379restriction (without "smtpd_helo_required = yes", a client can 5380simply skip smtpd_helo_restrictions by not sending HELO or EHLO). 5381</p> 5382 5383<p> 5384Specify a list of restrictions, separated by commas and/or whitespace. 5385Continue long lines by starting the next line with whitespace. 5386Restrictions are applied in the order as specified; the first 5387restriction that matches wins. 5388</p> 5389 5390<p> 5391The following restrictions are specific to the hostname information 5392received with the HELO or EHLO command. 5393</p> 5394 5395<dl> 5396 5397<dt><b><a name="check_helo_access">check_helo_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5398 5399<dd>Search the specified access(5) database for the HELO or EHLO 5400hostname or parent domains, and execute the corresponding action. 5401Note: specify "smtpd_helo_required = yes" to fully enforce this 5402restriction (without "smtpd_helo_required = yes", a client can 5403simply skip check_helo_access by not sending HELO or EHLO). </dd> 5404 5405<dt><b><a name="check_helo_mx_access">check_helo_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5406 5407<dd>Search the specified access(5) database for the MX hosts for 5408the HELO or EHLO hostname, and execute the corresponding action. 5409Note 1: a result of "OK" is not allowed for safety reasons. Instead, 5410use DUNNO in order to exclude specific hosts from blacklists. Note 54112: specify "smtpd_helo_required = yes" to fully enforce this 5412restriction (without "smtpd_helo_required = yes", a client can 5413simply skip check_helo_mx_access by not sending HELO or EHLO). This 5414feature is available in Postfix 2.1 and later. 5415</dd> 5416 5417<dt><b><a name="check_helo_ns_access">check_helo_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5418 5419<dd>Search the specified access(5) database for the DNS servers 5420for the HELO or EHLO hostname, and execute the corresponding action. 5421Note 1: a result of "OK" is not allowed for safety reasons. Instead, 5422use DUNNO in order to exclude specific hosts from blacklists. Note 54232: specify "smtpd_helo_required = yes" to fully enforce this 5424restriction (without "smtpd_helo_required = yes", a client can 5425simply skip check_helo_ns_access by not sending HELO or EHLO). This 5426feature is available in Postfix 2.1 and later. 5427</dd> 5428 5429<dt><b><a name="reject_invalid_helo_hostname">reject_invalid_helo_hostname</a></b> (with Postfix < 2.3: reject_invalid_hostname)</dt> 5430 5431<dd>Reject the request when the HELO or EHLO hostname syntax is 5432invalid. Note: specify "smtpd_helo_required = yes" to fully enforce 5433this restriction (without "smtpd_helo_required = yes", a client can simply 5434skip reject_invalid_helo_hostname by not sending HELO or EHLO). 5435<br> The invalid_hostname_reject_code specifies the response code 5436for rejected requests (default: 501).</dd> 5437 5438<dt><b><a name="reject_non_fqdn_helo_hostname">reject_non_fqdn_helo_hostname</a></b> (with Postfix < 2.3: reject_non_fqdn_hostname)</dt> 5439 5440<dd>Reject the request when the HELO or EHLO hostname is not in 5441fully-qualified domain form, as required by the RFC. Note: specify 5442"smtpd_helo_required = yes" to fully enforce this restriction 5443(without "smtpd_helo_required = yes", a client can simply skip 5444reject_non_fqdn_helo_hostname by not sending HELO or EHLO). <br> 5445The non_fqdn_reject_code parameter specifies the response code for 5446rejected requests (default: 504).</dd> 5447 5448<dt><b><a name="reject_rhsbl_helo">reject_rhsbl_helo <i>rbl_domain=d.d.d.d</i></a></b></dt> 5449 5450<dd>Reject the request when the HELO or EHLO hostname hostname is 5451listed with the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> 5452(Postfix version 2.1 and later only). Each "<i>d</i>" is a number, 5453or a pattern inside "[]" that contains one or more ";"-separated 5454numbers or number..number ranges (Postfix version 2.8 and later). 5455If no "<i>=d.d.d.d</i>" is 5456specified, reject the request when the HELO or EHLO hostname is 5457listed with any A record under <i>rbl_domain</i>. See the 5458reject_rbl_client description for additional RBL related configuration 5459parameters. Note: specify "smtpd_helo_required = yes" to fully 5460enforce this restriction (without "smtpd_helo_required = yes", a 5461client can simply skip reject_rhsbl_helo by not sending HELO or 5462EHLO). This feature is available in Postfix 2.0 5463and later. </dd> 5464 5465<dt><b><a name="reject_unknown_helo_hostname">reject_unknown_helo_hostname</a></b> (with Postfix < 2.3: reject_unknown_hostname)</dt> 5466 5467<dd>Reject the request when the HELO or EHLO hostname has no DNS A 5468or MX record. <br> The unknown_hostname_reject_code parameter 5469specifies the numerical response code for rejected requests (default: 5470450). <br> The unknown_helo_hostname_tempfail_action parameter 5471specifies the action after a temporary DNS error (default: 5472defer_if_permit). Note: specify "smtpd_helo_required = yes" to fully 5473enforce this restriction (without "smtpd_helo_required = yes", a 5474client can simply skip reject_unknown_helo_hostname by not sending 5475HELO or EHLO). </dd> 5476 5477</dl> 5478 5479<p> 5480Other restrictions that are valid in this context: 5481</p> 5482 5483<ul> 5484 5485<li> <a href="#generic">Generic</a> restrictions that can be used 5486in any SMTP command context, described under smtpd_client_restrictions. 5487 5488<li> Client hostname or network address specific restrictions 5489described under smtpd_client_restrictions. 5490 5491<li> SMTP command specific restrictions described under 5492smtpd_sender_restrictions or smtpd_recipient_restrictions. When 5493sender or recipient restrictions are listed under smtpd_helo_restrictions, 5494they have effect only with "smtpd_delay_reject = yes", so that 5495$smtpd_helo_restrictions is evaluated at the time of the RCPT TO 5496command. 5497 5498</ul> 5499 5500<p> 5501Examples: 5502</p> 5503 5504<pre> 5505smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname 5506smtpd_helo_restrictions = permit_mynetworks, reject_unknown_helo_hostname 5507</pre> 5508 5509%PARAM smtpd_history_flush_threshold 100 5510 5511<p> 5512The maximal number of lines in the Postfix SMTP server command history 5513before it is flushed upon receipt of EHLO, RSET, or end of DATA. 5514</p> 5515 5516%PARAM smtpd_noop_commands 5517 5518<p> 5519List of commands that the Postfix SMTP server replies to with "250 5520Ok", without doing any syntax checks and without changing state. 5521This list overrides any commands built into the Postfix SMTP server. 5522</p> 5523 5524%PARAM smtpd_proxy_ehlo $myhostname 5525 5526<p> 5527How the Postfix SMTP server announces itself to the proxy filter. 5528By default, the Postfix hostname is used. 5529</p> 5530 5531<p> 5532This feature is available in Postfix 2.1 and later. 5533</p> 5534 5535%PARAM smtpd_proxy_options 5536 5537<p> 5538List of options that control how the Postfix SMTP server 5539communicates with a before-queue content filter. Specify zero or 5540more of the following, separated by comma or whitespace. </p> 5541 5542<dl> 5543 5544<dt><b>speed_adjust</b></dt> 5545 5546<dd> <p> Do not connect to a before-queue content filter until an entire 5547message has been received. This reduces the number of simultaneous 5548before-queue content filter processes. </p> 5549 5550<p> NOTE 1: A filter must not <i>selectively</i> reject recipients 5551of a multi-recipient message. Rejecting all recipients is OK, as 5552is accepting all recipients. </p> 5553 5554<p> NOTE 2: This feature increases the minimum amount of free queue 5555space by $message_size_limit. The extra space is needed to save the 5556message to a temporary file. </p> </dd> 5557 5558</dl> 5559 5560<p> 5561This feature is available in Postfix 2.7 and later. 5562</p> 5563 5564%CLASS smtpd-proxy SMTP Proxy filter 5565 5566<p> 5567As of Postfix version 2.1, the SMTP server can forward all incoming 5568mail to a content filtering proxy server that inspects all mail 5569BEFORE it is stored in the Postfix mail queue. 5570</p> 5571 5572<p> 5573WARNING: the proxy filter must reply within a fixed deadline or 5574else the remote SMTP client times out and mail duplication happens. 5575This becomes a problem as mail load increases so that fewer and 5576fewer CPU cycles remain available to mead the fixed deadline. 5577</p> 5578 5579%PARAM smtpd_proxy_filter 5580 5581<p> The hostname and TCP port of the mail filtering proxy server. 5582The proxy receives all mail from the Postfix SMTP server, and is 5583supposed to give the result to another Postfix SMTP server process. 5584</p> 5585 5586<p> Specify "host:port" or "inet:host:port" for a TCP endpoint, or 5587"unix:pathname" for a UNIX-domain endpoint. The host can be specified 5588as an IP address or as a symbolic name; no MX lookups are done. 5589When no "host" or "host:" are specified, the local machine is 5590assumed. Pathname interpretation is relative to the Postfix queue 5591directory. </p> 5592 5593<p> This feature is available in Postfix 2.1 and later. </p> 5594 5595<p> The "inet:" and "unix:" prefixes are available in Postfix 2.3 5596and later. </p> 5597 5598%PARAM smtpd_proxy_timeout 100s 5599 5600<p> 5601The time limit for connecting to a proxy filter and for sending or 5602receiving information. When a connection fails the client gets a 5603generic error message while more detailed information is logged to 5604the maillog file. 5605</p> 5606 5607<p> 5608Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 5609The default time unit is s (seconds). 5610</p> 5611 5612<p> 5613This feature is available in Postfix 2.1 and later. 5614</p> 5615 5616%PARAM smtpd_recipient_limit 1000 5617 5618<p> 5619The maximal number of recipients that the Postfix SMTP server 5620accepts per message delivery request. 5621</p> 5622 5623%PARAM smtpd_recipient_restrictions permit_mynetworks, reject_unauth_destination 5624 5625<p> 5626The access restrictions that the Postfix SMTP server applies in 5627the context of the RCPT TO command. 5628See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 5629restriction lists" for a discussion of evaluation context and time. 5630</p> 5631 5632<p> 5633By default, the Postfix SMTP server accepts: 5634</p> 5635 5636<ul> 5637 5638<li> Mail from clients whose IP address matches $mynetworks, or: 5639 5640<li> Mail to remote destinations that match $relay_domains, except 5641for addresses that contain sender-specified routing 5642(user@elsewhere@domain), or: 5643 5644<li> Mail to local destinations that match $inet_interfaces 5645or $proxy_interfaces, $mydestination, $virtual_alias_domains, or 5646$virtual_mailbox_domains. 5647 5648</ul> 5649 5650<p> 5651IMPORTANT: If you change this parameter setting, you must specify 5652at least one of the following restrictions. Otherwise Postfix will 5653refuse to receive mail: 5654</p> 5655 5656<blockquote> 5657<pre> 5658reject, defer, defer_if_permit, reject_unauth_destination 5659</pre> 5660</blockquote> 5661 5662<p> 5663Specify a list of restrictions, separated by commas and/or whitespace. 5664Continue long lines by starting the next line with whitespace. 5665Restrictions are applied in the order as specified; the first 5666restriction that matches wins. 5667</p> 5668 5669<p> 5670The following restrictions are specific to the recipient address 5671that is received with the RCPT TO command. 5672</p> 5673 5674<dl> 5675 5676<dt><b><a name="check_recipient_access">check_recipient_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5677 5678<dd>Search the specified access(5) database for the resolved RCPT 5679TO address, domain, parent domains, or localpart@, and execute the 5680corresponding action. </dd> 5681 5682<dt><b><a name="check_recipient_mx_access">check_recipient_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5683 5684<dd>Search the specified access(5) database for the MX hosts for 5685the RCPT TO domain, and execute the corresponding action. Note: 5686a result of "OK" is not allowed for safety reasons. Instead, use 5687DUNNO in order to exclude specific hosts from blacklists. This 5688feature is available in Postfix 2.1 and later. </dd> 5689 5690<dt><b><a name="check_recipient_ns_access">check_recipient_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 5691 5692<dd>Search the specified access(5) database for the DNS servers 5693for the RCPT TO domain, and execute the corresponding action. 5694Note: a result of "OK" is not allowed for safety reasons. Instead, 5695use DUNNO in order to exclude specific hosts from blacklists. This 5696feature is available in Postfix 2.1 and later. </dd> 5697 5698<dt><b><a name="permit_auth_destination">permit_auth_destination</a></b></dt> 5699 5700<dd>Permit the request when one of the following is true: 5701 5702<ul> 5703 5704<li> Postfix is mail forwarder: the resolved RCPT TO domain matches 5705$relay_domains or a subdomain thereof, and the address contains no 5706sender-specified routing (user@elsewhere@domain), 5707 5708<li> Postfix is the final destination: the resolved RCPT TO domain 5709matches $mydestination, $inet_interfaces, $proxy_interfaces, 5710$virtual_alias_domains, or $virtual_mailbox_domains, and the address 5711contains no sender-specified routing (user@elsewhere@domain). 5712 5713</ul></dd> 5714 5715<dt><b><a name="permit_mx_backup">permit_mx_backup</a></b></dt> 5716 5717<dd>Permit the request when the local mail system is backup MX for 5718the RCPT TO domain, or when the domain is an authorized destination 5719(see permit_auth_destination for definition). 5720 5721<ul> 5722 5723<li> Safety: permit_mx_backup does not accept addresses that have 5724sender-specified routing information (example: user@elsewhere@domain). 5725 5726<li> Safety: permit_mx_backup can be vulnerable to mis-use when 5727access is not restricted with permit_mx_backup_networks. 5728 5729<li> Safety: as of Postfix version 2.3, permit_mx_backup no longer 5730accepts the address when the local mail system is primary MX for 5731the recipient domain. Exception: permit_mx_backup accepts the address 5732when it specifies an authorized destination (see permit_auth_destination 5733for definition). 5734 5735<li> Limitation: mail may be rejected in case of a temporary DNS 5736lookup problem with Postfix prior to version 2.0. 5737 5738</ul></dd> 5739 5740<dt><b><a name="reject_non_fqdn_recipient">reject_non_fqdn_recipient</a></b></dt> 5741 5742<dd>Reject the request when the RCPT TO address is not in 5743fully-qualified domain form, as required by the RFC. <br> The 5744non_fqdn_reject_code parameter specifies the response code for 5745rejected requests (default: 504). </dd> 5746 5747<dt><b><a name="reject_rhsbl_recipient">reject_rhsbl_recipient <i>rbl_domain=d.d.d.d</i></a></b></dt> 5748 5749<dd>Reject the request when the RCPT TO domain is listed with the 5750A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix version 57512.1 and later only). Each "<i>d</i>" is a number, or a pattern 5752inside "[]" that contains one or more ";"-separated numbers or 5753number..number ranges (Postfix version 2.8 and later). If no 5754"<i>=d.d.d.d</i>" is specified, reject 5755the request when the RCPT TO domain is listed with 5756any A record under <i>rbl_domain</i>. <br> The maps_rbl_reject_code 5757parameter specifies the response code for rejected requests (default: 5758554); the default_rbl_reply parameter specifies the default server 5759reply; and the rbl_reply_maps parameter specifies tables with server 5760replies indexed by <i>rbl_domain</i>. This feature is available 5761in Postfix version 2.0 and later.</dd> 5762 5763<dt><b><a name="reject_unauth_destination">reject_unauth_destination</a></b></dt> 5764 5765<dd>Reject the request unless one of the following is true: 5766 5767<ul> 5768 5769<li> Postfix is mail forwarder: the resolved RCPT TO domain matches 5770$relay_domains or a subdomain thereof, and contains no sender-specified 5771routing (user@elsewhere@domain), 5772 5773<li> Postfix is the final destination: the resolved RCPT TO domain 5774matches $mydestination, $inet_interfaces, $proxy_interfaces, 5775$virtual_alias_domains, or $virtual_mailbox_domains, and contains 5776no sender-specified routing (user@elsewhere@domain). 5777 5778</ul> The relay_domains_reject_code parameter specifies the response 5779code for rejected requests (default: 554). </dd> 5780 5781<dt><b><a name="reject_unknown_recipient_domain">reject_unknown_recipient_domain</a></b></dt> 5782 5783<dd>Reject the request when Postfix is not final destination for 5784the recipient domain, and the RCPT TO domain has 1) no DNS A or MX 5785record or 2) a malformed MX record such as a record with 5786a zero-length MX hostname (Postfix version 2.3 and later). <br> The 5787unknown_address_reject_code parameter specifies the numerical 5788response code for rejected requests (default: 450). The response 5789is always 450 in case of a temporary DNS error. <br> The 5790unknown_address_tempfail_action parameter specifies the action 5791after a temporary DNS error (default: defer_if_permit). </dd> 5792 5793<dt><b><a name="reject_unlisted_recipient">reject_unlisted_recipient</a></b> (with Postfix version 2.0: check_recipient_maps)</dt> 5794 5795<dd> Reject the request when the RCPT TO address is not listed in 5796the list of valid recipients for its domain class. See the 5797smtpd_reject_unlisted_recipient parameter description for details. 5798This feature is available in Postfix 2.1 and later.</dd> 5799 5800<dt><b><a name="reject_unverified_recipient">reject_unverified_recipient</a></b></dt> 5801 5802<dd>Reject the request when mail to the RCPT TO address is known 5803to bounce, or when the recipient address destination is not reachable. 5804Address verification information is managed by the verify(8) server; 5805see the ADDRESS_VERIFICATION_README file for details. <br> The 5806unverified_recipient_reject_code parameter specifies the numerical 5807response code when an address is known to bounce (default: 450, 5808change into 550 when you are confident that it is safe to do so). 5809<br>The unverified_recipient_defer_code parameter specifies the 5810numerical response code when an address probe failed due to a 5811temporary problem (default: 450). <br> The 5812unverified_recipient_tempfail_action parameter specifies the action 5813after addres probe failure due to a temporary problem (default: 5814defer_if_permit). <br> This feature is available in Postfix 2.1 5815and later. </dd> 5816 5817</dl> 5818 5819<p> 5820Other restrictions that are valid in this context: 5821</p> 5822 5823<ul> 5824 5825<li><a href="#generic">Generic</a> restrictions that can be used 5826in any SMTP command context, described under smtpd_client_restrictions. 5827 5828<li>SMTP command specific restrictions described under 5829smtpd_client_restrictions, smtpd_helo_restrictions and 5830smtpd_sender_restrictions. 5831 5832</ul> 5833 5834<p> 5835Example: 5836</p> 5837 5838<pre> 5839smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination 5840</pre> 5841 5842%CLASS sasl-auth SASL Authentication 5843 5844<p> 5845Postfix SASL support (RFC 4954) can be used to authenticate remote 5846SMTP clients to the Postfix SMTP server, and to authenticate the 5847Postfix SMTP client to a remote SMTP server. 5848See the SASL_README document for details. 5849</p> 5850 5851%PARAM smtpd_sasl_auth_enable no 5852 5853<p> 5854Enable SASL authentication in the Postfix SMTP server. By default, 5855the Postfix SMTP server does not use authentication. 5856</p> 5857 5858<p> 5859If a remote SMTP client is authenticated, the permit_sasl_authenticated 5860access restriction can be used to permit relay access, like this: 5861</p> 5862 5863<blockquote> 5864<pre> 5865smtpd_recipient_restrictions = 5866 permit_mynetworks, permit_sasl_authenticated, ... 5867</pre> 5868</blockquote> 5869 5870<p> To reject all SMTP connections from unauthenticated clients, 5871specify "smtpd_delay_reject = yes" (which is the default) and use: 5872</p> 5873 5874<blockquote> 5875<pre> 5876smtpd_client_restrictions = permit_sasl_authenticated, reject 5877</pre> 5878</blockquote> 5879 5880<p> 5881See the SASL_README file for SASL configuration and operation details. 5882</p> 5883 5884%PARAM smtpd_sasl_authenticated_header no 5885 5886<p> Report the SASL authenticated user name in the smtpd(8) Received 5887message header. </p> 5888 5889<p> This feature is available in Postfix 2.3 and later. </p> 5890 5891%PARAM smtpd_sasl_exceptions_networks 5892 5893<p> 5894What remote SMTP clients the Postfix SMTP server will not offer 5895AUTH support to. 5896</p> 5897 5898<p> 5899Some clients (Netscape 4 at least) have a bug that causes them to 5900require a login and password whenever AUTH is offered, whether it's 5901necessary or not. To work around this, specify, for example, 5902$mynetworks to prevent Postfix from offering AUTH to local clients. 5903</p> 5904 5905<p> 5906Specify a list of network/netmask patterns, separated by commas 5907and/or whitespace. The mask specifies the number of bits in the 5908network part of a host address. You can also "/file/name" or 5909"type:table" patterns. A "/file/name" pattern is replaced by its 5910contents; a "type:table" lookup table is matched when a table entry 5911matches a lookup string (the lookup result is ignored). Continue 5912long lines by starting the next line with whitespace. Specify 5913"!pattern" to exclude an address or network block from the list. 5914The form "!/file/name" is supported only in Postfix version 2.4 and 5915later. </p> 5916 5917<p> Note: IP version 6 address information must be specified inside 5918<tt>[]</tt> in the smtpd_sasl_exceptions_networks value, and in 5919files specified with "/file/name". IP version 6 addresses contain 5920the ":" character, and would otherwise be confused with a "type:table" 5921pattern. </p> 5922 5923<p> 5924Example: 5925</p> 5926 5927<pre> 5928smtpd_sasl_exceptions_networks = $mynetworks 5929</pre> 5930 5931<p> 5932This feature is available in Postfix 2.1 and later. 5933</p> 5934 5935%PARAM smtpd_sasl_local_domain 5936 5937<p> 5938The name of the Postfix SMTP server's local SASL authentication 5939realm. 5940</p> 5941 5942<p> 5943By default, the local authentication realm name is the null string. 5944</p> 5945 5946<p> 5947Examples: 5948</p> 5949 5950<pre> 5951smtpd_sasl_local_domain = $mydomain 5952smtpd_sasl_local_domain = $myhostname 5953</pre> 5954 5955%PARAM smtpd_sasl_security_options noanonymous 5956 5957<p> Postfix SMTP server SASL security options; as of Postfix 2.3 5958the list of available 5959features depends on the SASL server implementation that is selected 5960with <b>smtpd_sasl_type</b>. </p> 5961 5962<p> The following security features are defined for the <b>cyrus</b> 5963server SASL implementation: </p> 5964 5965<p> 5966Restrict what authentication mechanisms the Postfix SMTP server 5967will offer to the client. The list of available authentication 5968mechanisms is system dependent. 5969</p> 5970 5971<p> 5972Specify zero or more of the following: 5973</p> 5974 5975<dl> 5976 5977<dt><b>noplaintext</b></dt> 5978 5979<dd>Disallow methods that use plaintext passwords. </dd> 5980 5981<dt><b>noactive</b></dt> 5982 5983<dd>Disallow methods subject to active (non-dictionary) attack. </dd> 5984 5985<dt><b>nodictionary</b></dt> 5986 5987<dd>Disallow methods subject to passive (dictionary) attack. </dd> 5988 5989<dt><b>noanonymous</b></dt> 5990 5991<dd>Disallow methods that allow anonymous authentication. </dd> 5992 5993<dt><b>forward_secrecy</b></dt> 5994 5995<dd>Only allow methods that support forward secrecy (Dovecot only). 5996</dd> 5997 5998<dt><b>mutual_auth</b></dt> 5999 6000<dd>Only allow methods that provide mutual authentication (not available 6001with Cyrus SASL version 1). </dd> 6002 6003</dl> 6004 6005<p> 6006By default, the Postfix SMTP server accepts plaintext passwords but 6007not anonymous logins. 6008</p> 6009 6010<p> 6011Warning: it appears that clients try authentication methods in the 6012order as advertised by the server (e.g., PLAIN ANONYMOUS CRAM-MD5) 6013which means that if you disable plaintext passwords, clients will 6014log in anonymously, even when they should be able to use CRAM-MD5. 6015So, if you disable plaintext logins, disable anonymous logins too. 6016Postfix treats anonymous login as no authentication. 6017</p> 6018 6019<p> 6020Example: 6021</p> 6022 6023<pre> 6024smtpd_sasl_security_options = noanonymous, noplaintext 6025</pre> 6026 6027%PARAM smtpd_sender_login_maps 6028 6029<p> 6030Optional lookup table with the SASL login names that own sender 6031(MAIL FROM) addresses. 6032</p> 6033 6034<p> 6035Specify zero or more "type:table" lookup tables. With lookups from 6036indexed files such as DB or DBM, or from networked tables such as 6037NIS, LDAP or SQL, the following search operations are done with a 6038sender address of <i>user@domain</i>: </p> 6039 6040<dl> 6041 6042<dt> 1) <i>user@domain</i> </dt> 6043 6044<dd>This table lookup is always done and has the highest precedence. </dd> 6045 6046<dt> 2) <i>user</i> </dt> 6047 6048<dd>This table lookup is done only when the <i>domain</i> part of the 6049sender address matches $myorigin, $mydestination, $inet_interfaces 6050or $proxy_interfaces. </dd> 6051 6052<dt> 3) <i>@domain</i> </dt> 6053 6054<dd>This table lookup is done last and has the lowest precedence. </dd> 6055 6056</dl> 6057 6058<p> 6059In all cases the result of table lookup must be either "not found" 6060or a list of SASL login names separated by comma and/or whitespace. 6061</p> 6062 6063%PARAM smtpd_sender_restrictions 6064 6065<p> 6066Optional restrictions that the Postfix SMTP server applies in the 6067context of the MAIL FROM command. 6068See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 6069restriction lists" for a discussion of evaluation context and time. 6070</p> 6071 6072<p> 6073The default is to permit everything. 6074</p> 6075 6076<p> 6077Specify a list of restrictions, separated by commas and/or whitespace. 6078Continue long lines by starting the next line with whitespace. 6079Restrictions are applied in the order as specified; the first 6080restriction that matches wins. 6081</p> 6082 6083<p> 6084The following restrictions are specific to the sender address 6085received with the MAIL FROM command. 6086</p> 6087 6088<dl> 6089 6090<dt><b><a name="check_sender_access">check_sender_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 6091 6092<dd>Search the specified access(5) database for the MAIL FROM 6093address, domain, parent domains, or localpart@, and execute the 6094corresponding action. </dd> 6095 6096<dt><b><a name="check_sender_mx_access">check_sender_mx_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 6097 6098<dd>Search the specified access(5) database for the MX hosts for 6099the MAIL FROM address, and execute the corresponding action. Note: 6100a result of "OK" is not allowed for safety reasons. Instead, use 6101DUNNO in order to exclude specific hosts from blacklists. This 6102feature is available in Postfix 2.1 and later. </dd> 6103 6104<dt><b><a name="check_sender_ns_access">check_sender_ns_access</a> <i><a href="DATABASE_README.html">type:table</a></i></b></dt> 6105 6106<dd>Search the specified access(5) database for the DNS servers 6107for the MAIL FROM address, and execute the corresponding action. 6108Note: a result of "OK" is not allowed for safety reasons. Instead, 6109use DUNNO in order to exclude specific hosts from blacklists. This 6110feature is available in Postfix 2.1 and later. </dd> 6111 6112<dt><b><a name="reject_authenticated_sender_login_mismatch">reject_authenticated_sender_login_mismatch</a></b></dt> 6113 6114<dd>Enforces the reject_sender_login_mismatch restriction for 6115authenticated clients only. This feature is available in 6116Postfix version 2.1 and later. </dd> 6117 6118<dt><b><a name="reject_non_fqdn_sender">reject_non_fqdn_sender</a></b></dt> 6119 6120<dd>Reject the request when the MAIL FROM address is not in 6121fully-qualified domain form, as required by the RFC. <br> The 6122non_fqdn_reject_code parameter specifies the response code for 6123rejected requests (default: 504). </dd> 6124 6125<dt><b><a name="reject_rhsbl_sender">reject_rhsbl_sender <i>rbl_domain=d.d.d.d</i></a></b></dt> 6126 6127<dd>Reject the request when the MAIL FROM domain is listed with 6128the A record "<i>d.d.d.d</i>" under <i>rbl_domain</i> (Postfix 6129version 2.1 and later only). Each "<i>d</i>" is a number, or a 6130pattern inside "[]" that contains one or more ";"-separated numbers 6131or number..number ranges (Postfix version 2.8 and later). If no 6132"<i>=d.d.d.d</i>" is specified, 6133reject the request when the MAIL FROM domain is 6134listed with any A record under <i>rbl_domain</i>. <br> The 6135maps_rbl_reject_code parameter specifies the response code for 6136rejected requests (default: 554); the default_rbl_reply parameter 6137specifies the default server reply; and the rbl_reply_maps parameter 6138specifies tables with server replies indexed by <i>rbl_domain</i>. 6139This feature is available in Postfix 2.0 and later.</dd> 6140 6141<dt><b><a name="reject_sender_login_mismatch">reject_sender_login_mismatch</a></b></dt> 6142 6143<dd>Reject the request when $smtpd_sender_login_maps specifies an 6144owner for the MAIL FROM address, but the client is not (SASL) logged 6145in as that MAIL FROM address owner; or when the client is (SASL) 6146logged in, but the client login name doesn't own the MAIL FROM 6147address according to $smtpd_sender_login_maps.</dd> 6148 6149<dt><b><a name="reject_unauthenticated_sender_login_mismatch">reject_unauthenticated_sender_login_mismatch</a></b></dt> 6150 6151<dd>Enforces the reject_sender_login_mismatch restriction for 6152unauthenticated clients only. This feature is available in 6153Postfix version 2.1 and later. </dd> 6154 6155<dt><b><a name="reject_unknown_sender_domain">reject_unknown_sender_domain</a></b></dt> 6156 6157<dd>Reject the request when Postfix is not final destination for 6158the sender address, and the MAIL FROM domain has 1) no DNS A or MX 6159record, or 2) a malformed MX record such as a record with 6160a zero-length MX hostname (Postfix version 2.3 and later). <br> The 6161unknown_address_reject_code parameter specifies the numerical 6162response code for rejected requests (default: 450). The response 6163is always 450 in case of a temporary DNS error. <br> The 6164unknown_address_tempfail_action parameter specifies the action 6165after a temporary DNS error (default: defer_if_permit). </dd> 6166 6167<dt><b><a name="reject_unlisted_sender">reject_unlisted_sender</a></b></dt> 6168 6169<dd>Reject the request when the MAIL FROM address is not listed in 6170the list of valid recipients for its domain class. See the 6171smtpd_reject_unlisted_sender parameter description for details. 6172This feature is available in Postfix 2.1 and later.</dd> 6173 6174<dt><b><a name="reject_unverified_sender">reject_unverified_sender</a></b></dt> 6175 6176<dd>Reject the request when mail to the MAIL FROM address is known to 6177bounce, or when the sender address destination is not reachable. 6178Address verification information is managed by the verify(8) server; 6179see the ADDRESS_VERIFICATION_README file for details. <br> The 6180unverified_sender_reject_code parameter specifies the numerical 6181response code when an address is known to bounce (default: 450, 6182change into 550 when you are confident that it is safe to do so). 6183<br>The unverified_sender_defer_code specifies the numerical response 6184code when an address address probe failed due to a temporary problem 6185(default: 450). <br> The unverified_sender_tempfail_action parameter 6186specifies the action after address probe failure due to a temporary 6187problem (default: defer_if_permit). <br> This feature is available 6188in Postfix 2.1 and later. </dd> 6189 6190</dl> 6191 6192<p> 6193Other restrictions that are valid in this context: 6194</p> 6195 6196<ul> 6197 6198<li> <a href="#generic">Generic</a> restrictions that can be used 6199in any SMTP command context, described under smtpd_client_restrictions. 6200 6201<li> SMTP command specific restrictions described under 6202smtpd_client_restrictions and smtpd_helo_restrictions. 6203 6204<li> SMTP command specific restrictions described under 6205smtpd_recipient_restrictions. When recipient restrictions are listed 6206under smtpd_sender_restrictions, they have effect only with 6207"smtpd_delay_reject = yes", so that $smtpd_sender_restrictions is 6208evaluated at the time of the RCPT TO command. 6209 6210</ul> 6211 6212<p> 6213Examples: 6214</p> 6215 6216<pre> 6217smtpd_sender_restrictions = reject_unknown_sender_domain 6218smtpd_sender_restrictions = reject_unknown_sender_domain, 6219 check_sender_access hash:/etc/postfix/access 6220</pre> 6221 6222%PARAM smtpd_timeout normal: 300s, overload: 10s 6223 6224<p> 6225The time limit for sending a Postfix SMTP server response and for 6226receiving a remote SMTP client request. Normally the default limit 6227is 300s, but it changes under overload to just 10s. With Postfix 62282.5 and earlier, the SMTP server always uses a time limit of 300s 6229by default. 6230</p> 6231 6232<p> 6233Note: if you set SMTP time limits to very large values you may have 6234to update the global ipc_timeout parameter. 6235</p> 6236 6237<p> 6238Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6239The default time unit is s (seconds). 6240</p> 6241 6242%PARAM soft_bounce no 6243 6244<p> 6245Safety net to keep mail queued that would otherwise be returned to 6246the sender. This parameter disables locally-generated bounces, 6247and prevents the Postfix SMTP server from rejecting mail permanently, 6248by changing 5xx reply codes into 4xx. However, soft_bounce is no 6249cure for address rewriting mistakes or mail routing mistakes. 6250</p> 6251 6252<p> 6253Example: 6254</p> 6255 6256<pre> 6257soft_bounce = yes 6258</pre> 6259 6260%PARAM stale_lock_time 500s 6261 6262<p> 6263The time after which a stale exclusive mailbox lockfile is removed. 6264This is used for delivery to file or mailbox. 6265</p> 6266 6267<p> 6268Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6269The default time unit is s (seconds). 6270</p> 6271 6272%PARAM strict_rfc821_envelopes no 6273 6274<p> 6275Require that addresses received in SMTP MAIL FROM and RCPT TO 6276commands are enclosed with <>, and that those addresses do 6277not contain RFC 822 style comments or phrases. This stops mail 6278from poorly written software. 6279</p> 6280 6281<p> 6282By default, the Postfix SMTP server accepts RFC 822 syntax in MAIL 6283FROM and RCPT TO addresses. 6284</p> 6285 6286%PARAM swap_bangpath yes 6287 6288<p> 6289Enable the rewriting of "site!user" into "user@site". This is 6290necessary if your machine is connected to UUCP networks. It is 6291enabled by default. 6292</p> 6293 6294<p> Note: with Postfix version 2.2, message header address rewriting 6295happens only when one of the following conditions is true: </p> 6296 6297<ul> 6298 6299<li> The message is received with the Postfix sendmail(1) command, 6300 6301<li> The message is received from a network client that matches 6302$local_header_rewrite_clients, 6303 6304<li> The message is received from the network, and the 6305remote_header_rewrite_domain parameter specifies a non-empty value. 6306 6307</ul> 6308 6309<p> To get the behavior before Postfix version 2.2, specify 6310"local_header_rewrite_clients = static:all". </p> 6311 6312<p> 6313Example: 6314</p> 6315 6316<pre> 6317swap_bangpath = no 6318</pre> 6319 6320%PARAM syslog_facility mail 6321 6322<p> 6323The syslog facility of Postfix logging. Specify a facility as 6324defined in syslog.conf(5). The default facility is "mail". 6325</p> 6326 6327<p> 6328Warning: a non-default syslog_facility setting takes effect only 6329after a Postfix process has completed initialization. Errors during 6330process initialization will be logged with the default facility. 6331Examples are errors while parsing the command line arguments, and 6332errors while accessing the Postfix main.cf configuration file. 6333</p> 6334 6335%PARAM syslog_name see "postconf -d" output 6336 6337<p> 6338The mail system name that is prepended to the process name in syslog 6339records, so that "smtpd" becomes, for example, "postfix/smtpd". 6340</p> 6341 6342<p> 6343Warning: a non-default syslog_name setting takes effect only after 6344a Postfix process has completed initialization. Errors during 6345process initialization will be logged with the default name. Examples 6346are errors while parsing the command line arguments, and errors 6347while accessing the Postfix main.cf configuration file. 6348</p> 6349 6350%PARAM transport_maps 6351 6352<p> 6353Optional lookup tables with mappings from recipient address to 6354(message delivery transport, next-hop destination). See transport(5) 6355for details. 6356</p> 6357 6358<p> 6359Specify zero or more "type:table" lookup tables. If you use this 6360feature with local files, run "<b>postmap /etc/postfix/transport</b>" 6361after making a change. </p> 6362 6363<p> For safety reasons, as of Postfix 2.3 this feature does not 6364allow $number substitutions in regular expression maps. </p> 6365 6366<p> 6367Examples: 6368</p> 6369 6370<pre> 6371transport_maps = dbm:/etc/postfix/transport 6372transport_maps = hash:/etc/postfix/transport 6373</pre> 6374 6375%PARAM transport_retry_time 60s 6376 6377<p> 6378The time between attempts by the Postfix queue manager to contact 6379a malfunctioning message delivery transport. 6380</p> 6381 6382<p> 6383Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6384The default time unit is s (seconds). 6385</p> 6386 6387%PARAM trigger_timeout 10s 6388 6389<p> 6390The time limit for sending a trigger to a Postfix daemon (for 6391example, the pickup(8) or qmgr(8) daemon). This time limit prevents 6392programs from getting stuck when the mail system is under heavy 6393load. 6394</p> 6395 6396<p> 6397Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6398The default time unit is s (seconds). 6399</p> 6400 6401%PARAM unknown_address_reject_code 450 6402 6403<p> 6404The numerical Postfix SMTP server response code when a sender or 6405recipient address is rejected by the reject_unknown_sender_domain 6406or reject_unknown_recipient_domain restriction. The response is 6407always 450 in case of a temporary DNS error. 6408</p> 6409 6410<p> 6411Do not change this unless you have a complete understanding of RFC 2821. 6412</p> 6413 6414%PARAM unknown_client_reject_code 450 6415 6416<p> 6417The numerical Postfix SMTP server response code when a client 6418without valid address <=> name mapping is rejected by the 6419reject_unknown_client_hostname restriction. The SMTP server always replies 6420with 450 when the mapping failed due to a temporary error condition. 6421</p> 6422 6423<p> 6424Do not change this unless you have a complete understanding of RFC 2821. 6425</p> 6426 6427%PARAM unknown_hostname_reject_code 450 6428 6429<p> 6430The numerical Postfix SMTP server response code when the hostname 6431specified with the HELO or EHLO command is rejected by the 6432reject_unknown_helo_hostname restriction. 6433</p> 6434 6435<p> 6436Do not change this unless you have a complete understanding of RFC 2821. 6437</p> 6438 6439%PARAM unknown_local_recipient_reject_code 550 6440 6441<p> 6442The numerical Postfix SMTP server response code when a recipient 6443address is local, and $local_recipient_maps specifies a list of 6444lookup tables that does not match the recipient. A recipient 6445address is local when its domain matches $mydestination, 6446$proxy_interfaces or $inet_interfaces. 6447</p> 6448 6449<p> 6450The default setting is 550 (reject mail) but it is safer to initially 6451use 450 (try again later) so you have time to find out if your 6452local_recipient_maps settings are OK. 6453</p> 6454 6455<p> 6456Example: 6457</p> 6458 6459<pre> 6460unknown_local_recipient_reject_code = 450 6461</pre> 6462 6463<p> 6464This feature is available in Postfix 2.0 and later. 6465</p> 6466 6467%PARAM unverified_recipient_reject_code 450 6468 6469<p> 6470The numerical Postfix SMTP server response when a recipient address 6471is rejected by the reject_unverified_recipient restriction. 6472</p> 6473 6474<p> 6475Unlike elsewhere in Postfix, you can specify 250 in order to 6476accept the address anyway. 6477</p> 6478 6479<p> 6480Do not change this unless you have a complete understanding of RFC 2821. 6481</p> 6482 6483<p> 6484This feature is available in Postfix 2.1 and later. 6485</p> 6486 6487%PARAM unverified_recipient_defer_code 450 6488 6489<p> 6490The numerical Postfix SMTP server response when a recipient address 6491probe fails due to a temporary error condition. 6492</p> 6493 6494<p> 6495Unlike elsewhere in Postfix, you can specify 250 in order to 6496accept the address anyway. 6497</p> 6498 6499<p> 6500Do not change this unless you have a complete understanding of RFC 2821. 6501</p> 6502 6503<p> 6504This feature is available in Postfix 2.6 and later. 6505</p> 6506 6507%PARAM unverified_sender_reject_code 450 6508 6509<p> 6510The numerical Postfix SMTP server response code when a recipient 6511address is rejected by the reject_unverified_sender restriction. 6512</p> 6513 6514<p> 6515Unlike elsewhere in Postfix, you can specify 250 in order to 6516accept the address anyway. 6517</p> 6518 6519<p> 6520Do not change this unless you have a complete understanding of RFC 2821. 6521</p> 6522 6523<p> 6524This feature is available in Postfix 2.1 and later. 6525</p> 6526 6527%PARAM unverified_sender_defer_code 450 6528 6529<p> 6530The numerical Postfix SMTP server response code when a sender address 6531probe fails due to a temporary error condition. 6532</p> 6533 6534<p> 6535Unlike elsewhere in Postfix, you can specify 250 in order to 6536accept the address anyway. 6537</p> 6538 6539<p> 6540Do not change this unless you have a complete understanding of RFC 2821. 6541</p> 6542 6543<p> 6544This feature is available in Postfix 2.6 and later. 6545</p> 6546 6547%PARAM virtual_alias_domains $virtual_alias_maps 6548 6549<p> Postfix is final destination for the specified list of virtual 6550alias domains, that is, domains for which all addresses are aliased 6551to addresses in other local or remote domains. The SMTP server 6552validates recipient addresses with $virtual_alias_maps and rejects 6553non-existent recipients. See also the virtual alias domain class 6554in the ADDRESS_CLASS_README file </p> 6555 6556<p> 6557This feature is available in Postfix 2.0 and later. The default 6558value is backwards compatible with Postfix version 1.1. 6559</p> 6560 6561<p> 6562The default value is $virtual_alias_maps so that you can keep all 6563information about virtual alias domains in one place. If you have 6564many users, it is better to separate information that changes more 6565frequently (virtual address -> local or remote address mapping) 6566from information that changes less frequently (the list of virtual 6567domain names). 6568</p> 6569 6570<p> Specify a list of host or domain names, "/file/name" or 6571"type:table" patterns, separated by commas and/or whitespace. A 6572"/file/name" pattern is replaced by its contents; a "type:table" 6573lookup table is matched when a table entry matches a lookup string 6574(the lookup result is ignored). Continue long lines by starting 6575the next line with whitespace. Specify "!pattern" to exclude a host 6576or domain name from the list. The form "!/file/name" is supported 6577only in Postfix version 2.4 and later. </p> 6578 6579<p> 6580See also the VIRTUAL_README and ADDRESS_CLASS_README documents 6581for further information. 6582</p> 6583 6584<p> 6585Example: 6586</p> 6587 6588<pre> 6589virtual_alias_domains = virtual1.tld virtual2.tld 6590</pre> 6591 6592%PARAM virtual_alias_expansion_limit 1000 6593 6594<p> 6595The maximal number of addresses that virtual alias expansion produces 6596from each original recipient. 6597</p> 6598 6599<p> 6600This feature is available in Postfix 2.1 and later. 6601</p> 6602 6603%PARAM virtual_alias_maps $virtual_maps 6604 6605<p> 6606Optional lookup tables that alias specific mail addresses or domains 6607to other local or remote address. The table format and lookups 6608are documented in virtual(5). For an overview of Postfix address 6609manipulations see the ADDRESS_REWRITING_README document. 6610</p> 6611 6612<p> 6613This feature is available in Postfix 2.0 and later. The default 6614value is backwards compatible with Postfix version 1.1. 6615</p> 6616 6617<p> 6618If you use this feature with indexed files, run "<b>postmap 6619/etc/postfix/virtual</b>" after changing the file. 6620</p> 6621 6622<p> 6623Examples: 6624</p> 6625 6626<pre> 6627virtual_alias_maps = dbm:/etc/postfix/virtual 6628virtual_alias_maps = hash:/etc/postfix/virtual 6629</pre> 6630 6631%PARAM virtual_alias_recursion_limit 1000 6632 6633<p> 6634The maximal nesting depth of virtual alias expansion. Currently 6635the recursion limit is applied only to the left branch of the 6636expansion graph, so the depth of the tree can in the worst case 6637reach the sum of the expansion and recursion limits. This may 6638change in the future. 6639</p> 6640 6641<p> 6642This feature is available in Postfix 2.1 and later. 6643</p> 6644 6645%CLASS trouble-shooting Trouble shooting 6646 6647<p> 6648The DEBUG_README document describes how to debug parts of the 6649Postfix mail system. The methods vary from making the software log 6650a lot of detail, to running some daemon processes under control of 6651a call tracer or debugger. 6652</p> 6653 6654%PARAM debugger_command 6655 6656<p> 6657The external command to execute when a Postfix daemon program is 6658invoked with the -D option. 6659</p> 6660 6661<p> 6662Use "command .. & sleep 5" so that the debugger can attach before 6663the process marches on. If you use an X-based debugger, be sure to 6664set up your XAUTHORITY environment variable before starting Postfix. 6665</p> 6666 6667<p> 6668Example: 6669</p> 6670 6671<pre> 6672debugger_command = 6673 PATH=/usr/bin:/usr/X11R6/bin 6674 ddd $daemon_directory/$process_name $process_id & sleep 5 6675</pre> 6676 6677%PARAM 2bounce_notice_recipient postmaster 6678 6679<p> The recipient of undeliverable mail that cannot be returned to 6680the sender. This feature is enabled with the notify_classes 6681parameter. </p> 6682 6683%PARAM address_verify_service_name verify 6684 6685<p> 6686The name of the verify(8) address verification service. This service 6687maintains the status of sender and/or recipient address verification 6688probes, and generates probes on request by other Postfix processes. 6689</p> 6690 6691%PARAM alternate_config_directories 6692 6693<p> 6694A list of non-default Postfix configuration directories that may 6695be specified with "-c config_directory" on the command line, or 6696via the MAIL_CONFIG environment parameter. 6697</p> 6698 6699<p> 6700This list must be specified in the default Postfix configuration 6701directory, and is used by set-gid Postfix commands such as postqueue(1) 6702and postdrop(1). 6703</p> 6704 6705%PARAM append_at_myorigin yes 6706 6707<p> 6708With locally submitted mail, append the string "@$myorigin" to mail 6709addresses without domain information. With remotely submitted mail, 6710append the string "@$remote_header_rewrite_domain" instead. 6711</p> 6712 6713<p> 6714Note 1: this feature is enabled by default and must not be turned off. 6715Postfix does not support domain-less addresses. 6716</p> 6717 6718<p> Note 2: with Postfix version 2.2, message header address rewriting 6719happens only when one of the following conditions is true: </p> 6720 6721<ul> 6722 6723<li> The message is received with the Postfix sendmail(1) command, 6724 6725<li> The message is received from a network client that matches 6726$local_header_rewrite_clients, 6727 6728<li> The message is received from the network, and the 6729remote_header_rewrite_domain parameter specifies a non-empty value. 6730 6731</ul> 6732 6733<p> To get the behavior before Postfix version 2.2, specify 6734"local_header_rewrite_clients = static:all". </p> 6735 6736%PARAM append_dot_mydomain yes 6737 6738<p> 6739With locally submitted mail, append the string ".$mydomain" to 6740addresses that have no ".domain" information. With remotely submitted 6741mail, append the string ".$remote_header_rewrite_domain" 6742instead. 6743</p> 6744 6745<p> 6746Note 1: this feature is enabled by default. If disabled, users will not be 6747able to send mail to "user@partialdomainname" but will have to 6748specify full domain names instead. 6749</p> 6750 6751<p> Note 2: with Postfix version 2.2, message header address rewriting 6752happens only when one of the following conditions is true: </p> 6753 6754<ul> 6755 6756<li> The message is received with the Postfix sendmail(1) command, 6757 6758<li> The message is received from a network client that matches 6759$local_header_rewrite_clients, 6760 6761<li> The message is received from the network, and the 6762remote_header_rewrite_domain parameter specifies a non-empty value. 6763 6764</ul> 6765 6766<p> To get the behavior before Postfix version 2.2, specify 6767"local_header_rewrite_clients = static:all". </p> 6768 6769%PARAM application_event_drain_time 100s 6770 6771<p> 6772How long the postkick(1) command waits for a request to enter the 6773Postfix daemon process input buffer before giving up. 6774</p> 6775 6776<p> 6777Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6778The default time unit is s (seconds). 6779</p> 6780 6781<p> 6782This feature is available in Postfix 2.1 and later. 6783</p> 6784 6785%PARAM authorized_flush_users static:anyone 6786 6787<p> 6788List of users who are authorized to flush the queue. 6789</p> 6790 6791<p> 6792By default, all users are allowed to flush the queue. Access is 6793always granted if the invoking user is the super-user or the 6794$mail_owner user. Otherwise, the real UID of the process is looked 6795up in the system password file, and access is granted only if the 6796corresponding login name is on the access list. The username 6797"unknown" is used for processes whose real UID is not found in the 6798password file. </p> 6799 6800<p> 6801Specify a list of user names, "/file/name" or "type:table" patterns, 6802separated by commas and/or whitespace. The list is matched left to 6803right, and the search stops on the first match. A "/file/name" 6804pattern is replaced 6805by its contents; a "type:table" lookup table is matched when a name 6806matches a lookup key (the lookup result is ignored). Continue long 6807lines by starting the next line with whitespace. Specify "!pattern" 6808to exclude a name from the list. The form "!/file/name" is supported 6809only in Postfix version 2.4 and later. </p> 6810 6811<p> 6812This feature is available in Postfix 2.2 and later. 6813</p> 6814 6815%PARAM authorized_mailq_users static:anyone 6816 6817<p> 6818List of users who are authorized to view the queue. 6819</p> 6820 6821<p> 6822By default, all users are allowed to view the queue. Access is 6823always granted if the invoking user is the super-user or the 6824$mail_owner user. Otherwise, the real UID of the process is looked 6825up in the system password file, and access is granted only if the 6826corresponding login name is on the access list. The username 6827"unknown" is used for processes whose real UID is not found in the 6828password file. </p> 6829 6830<p> 6831Specify a list of user names, "/file/name" or "type:table" patterns, 6832separated by commas and/or whitespace. The list is matched left to 6833right, and the search stops on the first match. A "/file/name" 6834pattern is replaced 6835by its contents; a "type:table" lookup table is matched when a name 6836matches a lookup key (the lookup result is ignored). Continue long 6837lines by starting the next line with whitespace. Specify "!pattern" 6838to exclude a user name from the list. The form "!/file/name" is 6839supported only in Postfix version 2.4 and later. </p> 6840 6841<p> 6842This feature is available in Postfix 2.2 and later. 6843</p> 6844 6845%PARAM authorized_submit_users static:anyone 6846 6847<p> 6848List of users who are authorized to submit mail with the sendmail(1) 6849command (and with the privileged postdrop(1) helper command). 6850</p> 6851 6852<p> 6853By default, all users are allowed to submit mail. Otherwise, the 6854real UID of the process is looked up in the system password file, 6855and access is granted only if the corresponding login name is on 6856the access list. The username "unknown" is used for processes 6857whose real UID is not found in the password file. To deny mail 6858submission access to all users specify an empty list. </p> 6859 6860<p> 6861Specify a list of user names, "/file/name" or "type:table" patterns, 6862separated by commas and/or whitespace. The list is matched left to right, 6863and the search stops on the first match. A "/file/name" pattern is 6864replaced by its contents; 6865a "type:table" lookup table is matched when a name matches a lookup key 6866(the lookup result is ignored). Continue long lines by starting the 6867next line with whitespace. Specify "!pattern" to exclude a user 6868name from the list. The form "!/file/name" is supported only in 6869Postfix version 2.4 and later. </p> 6870 6871<p> 6872Example: 6873</p> 6874 6875<pre> 6876authorized_submit_users = !www, static:all 6877</pre> 6878 6879<p> 6880This feature is available in Postfix 2.2 and later. 6881</p> 6882 6883%PARAM backwards_bounce_logfile_compatibility yes 6884 6885<p> 6886Produce additional bounce(8) logfile records that can be read by 6887Postfix versions before 2.0. The current and more extensible "name = 6888value" format is needed in order to implement more sophisticated 6889functionality. 6890</p> 6891 6892<p> 6893This feature is available in Postfix 2.1 and later. 6894</p> 6895 6896%PARAM bounce_notice_recipient postmaster 6897 6898<p> 6899The recipient of postmaster notifications with the message headers 6900of mail that Postfix did not deliver and of SMTP conversation 6901transcripts of mail that Postfix did not receive. This feature is 6902enabled with the notify_classes parameter. </p> 6903 6904%PARAM bounce_service_name bounce 6905 6906<p> 6907The name of the bounce(8) service. This service maintains a record 6908of failed delivery attempts and generates non-delivery notifications. 6909</p> 6910 6911<p> 6912This feature is available in Postfix 2.0 and later. 6913</p> 6914 6915%PARAM broken_sasl_auth_clients no 6916 6917<p> 6918Enable inter-operability with remote SMTP clients that implement an obsolete 6919version of the AUTH command (RFC 4954). Examples of such clients 6920are MicroSoft Outlook Express version 4 and MicroSoft Exchange 6921version 5.0. 6922</p> 6923 6924<p> 6925Specify "broken_sasl_auth_clients = yes" to have Postfix advertise 6926AUTH support in a non-standard way. 6927</p> 6928 6929%PARAM cleanup_service_name cleanup 6930 6931<p> 6932The name of the cleanup(8) service. This service rewrites addresses 6933into the standard form, and performs canonical(5) address mapping 6934and virtual(5) aliasing. 6935</p> 6936 6937<p> 6938This feature is available in Postfix 2.0 and later. 6939</p> 6940 6941%PARAM anvil_status_update_time 600s 6942 6943<p> 6944How frequently the anvil(8) connection and rate limiting server 6945logs peak usage information. 6946</p> 6947 6948<p> 6949This feature is available in Postfix 2.2 and later. 6950</p> 6951 6952<p> 6953Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6954The default time unit is s (seconds). 6955</p> 6956 6957%PARAM enable_errors_to no 6958 6959<p> Report mail delivery errors to the address specified with the 6960non-standard Errors-To: message header, instead of the envelope 6961sender address (this feature is removed with Postfix version 2.2, is 6962turned off by default with Postfix version 2.1, and is always turned on 6963with older Postfix versions). </p> 6964 6965%PARAM extract_recipient_limit 10240 6966 6967<p> 6968The maximal number of recipient addresses that Postfix will extract 6969from message headers when mail is submitted with "<b>sendmail -t</b>". 6970</p> 6971 6972<p> 6973This feature was removed in Postfix version 2.1. 6974</p> 6975 6976%PARAM anvil_rate_time_unit 60s 6977 6978<p> 6979The time unit over which client connection rates and other rates 6980are calculated. 6981</p> 6982 6983<p> 6984This feature is implemented by the anvil(8) service which is available 6985in Postfix version 2.2 and later. 6986</p> 6987 6988<p> 6989The default interval is relatively short. Because of the high 6990frequency of updates, the anvil(8) server uses volatile memory 6991only. Thus, information is lost whenever the process terminates. 6992</p> 6993 6994<p> 6995Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 6996The default time unit is s (seconds). 6997</p> 6998 6999%PARAM command_expansion_filter see "postconf -d" output 7000 7001<p> 7002Restrict the characters that the local(8) delivery agent allows in 7003$name expansions of $mailbox_command and $command_execution_directory. 7004Characters outside the 7005allowed set are replaced by underscores. 7006</p> 7007 7008%PARAM content_filter 7009 7010<p> After the message is queued, send the entire message to the 7011specified <i>transport:destination</i>. The <i>transport</i> name 7012specifies the first field of a mail delivery agent definition in 7013master.cf; the syntax of the next-hop <i>destination</i> is described 7014in the manual page of the corresponding delivery agent. More 7015information about external content filters is in the Postfix 7016FILTER_README file. </p> 7017 7018<p> Notes: </p> 7019 7020<ul> 7021 7022<li> <p> This setting has lower precedence than a FILTER action 7023that is specified in an access(5), header_checks(5) or body_checks(5) 7024table. </p> 7025 7026<li> <p> The meaning of an empty next-hop filter <i>destination</i> 7027is version dependent. Postfix 2.7 and later will use the recipient 7028domain; earlier versions will use $myhostname. Specify 7029"default_filter_nexthop = $myhostname" for compatibility with Postfix 70302.6 or earlier, or specify a content_filter value with an explicit 7031next-hop <i>destination</i>. </p> 7032 7033</ul> 7034 7035%PARAM default_delivery_slot_discount 50 7036 7037<p> 7038The default value for transport-specific _delivery_slot_discount 7039settings. 7040</p> 7041 7042<p> 7043This parameter speeds up the moment when a message preemption can 7044happen. Instead of waiting until the full amount of delivery slots 7045required is available, the preemption can happen when 7046transport_delivery_slot_discount percent of the required amount 7047plus transport_delivery_slot_loan still remains to be accumulated. 7048Note that the full amount will still have to be accumulated before 7049another preemption can take place later. 7050</p> 7051 7052<p> Use <i>transport</i>_delivery_slot_discount to specify a 7053transport-specific override, where <i>transport</i> is the master.cf 7054name of the message delivery transport. 7055</p> 7056 7057%PARAM default_delivery_slot_loan 3 7058 7059<p> 7060The default value for transport-specific _delivery_slot_loan 7061settings. 7062</p> 7063 7064<p> 7065This parameter speeds up the moment when a message preemption can 7066happen. Instead of waiting until the full amount of delivery slots 7067required is available, the preemption can happen when 7068transport_delivery_slot_discount percent of the required amount 7069plus transport_delivery_slot_loan still remains to be accumulated. 7070Note that the full amount will still have to be accumulated before 7071another preemption can take place later. 7072</p> 7073 7074<p> Use <i>transport</i>_delivery_slot_loan to specify a 7075transport-specific override, where <i>transport</i> is the master.cf 7076name of the message delivery transport. 7077</p> 7078 7079%CLASS verp VERP Support 7080 7081<p> 7082With VERP style delivery, each recipient of a message receives a 7083customized copy of the message with his/her own recipient address 7084encoded in the envelope sender address. The VERP_README file 7085describes configuration and operation details of Postfix support 7086for variable envelope return path addresses. VERP style delivery 7087is requested with the SMTP XVERP command or with the "<b>sendmail 7088-V</b>" command-line option and is available in Postfix 70891.1 and later. 7090</p> 7091 7092%PARAM default_verp_delimiters += 7093 7094<p> The two default VERP delimiter characters. These are used when 7095no explicit delimiters are specified with the SMTP XVERP command 7096or with the "<b>sendmail -V</b>" command-line option. Specify 7097characters that are allowed by the verp_delimiter_filter setting. 7098</p> 7099 7100<p> 7101This feature is available in Postfix 1.1 and later. 7102</p> 7103 7104%PARAM defer_service_name defer 7105 7106<p> 7107The name of the defer service. This service is implemented by the 7108bounce(8) daemon and maintains a record 7109of failed delivery attempts and generates non-delivery notifications. 7110</p> 7111 7112<p> 7113This feature is available in Postfix 2.0 and later. 7114</p> 7115 7116%PARAM delay_notice_recipient postmaster 7117 7118<p> 7119The recipient of postmaster notifications with the message headers 7120of mail that cannot be delivered within $delay_warning_time time 7121units. </p> 7122 7123<p> 7124This feature is enabled with the delay_warning_time parameter. 7125</p> 7126 7127%PARAM delay_warning_time 0h 7128 7129<p> 7130The time after which the sender receives the message headers of 7131mail that is still queued. 7132</p> 7133 7134<p> 7135To enable this feature, specify a non-zero time value (an integral 7136value plus an optional one-letter suffix that specifies the time 7137unit). 7138</p> 7139 7140<p> 7141Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 7142The default time unit is h (hours). 7143</p> 7144 7145%PARAM disable_dns_lookups no 7146 7147<p> 7148Disable DNS lookups in the Postfix SMTP and LMTP clients. When 7149disabled, hosts are looked up with the getaddrinfo() system 7150library routine which normally also looks in /etc/hosts. 7151</p> 7152 7153<p> 7154DNS lookups are enabled by default. 7155</p> 7156 7157%CLASS mime MIME Processing 7158 7159<p> 7160MIME processing is available in Postfix as of version 2.0. Older 7161Postfix versions do not recognize MIME headers inside the message 7162body. 7163</p> 7164 7165%PARAM disable_mime_input_processing no 7166 7167<p> 7168Turn off MIME processing while receiving mail. This means that no 7169special treatment is given to Content-Type: message headers, and 7170that all text after the initial message headers is considered to 7171be part of the message body. 7172</p> 7173 7174<p> 7175This feature is available in Postfix 2.0 and later. 7176</p> 7177 7178<p> 7179Mime input processing is enabled by default, and is needed in order 7180to recognize MIME headers in message content. 7181</p> 7182 7183%PARAM disable_mime_output_conversion no 7184 7185<p> 7186Disable the conversion of 8BITMIME format to 7BIT format. Mime 7187output conversion is needed when the destination does not advertise 71888BITMIME support. 7189</p> 7190 7191<p> 7192This feature is available in Postfix 2.0 and later. 7193</p> 7194 7195%PARAM disable_verp_bounces no 7196 7197<p> 7198Disable sending one bounce report per recipient. 7199</p> 7200 7201<p> 7202The default, one per recipient, is what ezmlm needs. 7203</p> 7204 7205<p> 7206This feature is available in Postfix 1.1 and later. 7207</p> 7208 7209%PARAM dont_remove 0 7210 7211<p> 7212Don't remove queue files and save them to the "saved" mail queue. 7213This is a debugging aid. To inspect the envelope information and 7214content of a Postfix queue file, use the postcat(1) command. 7215</p> 7216 7217%PARAM empty_address_recipient MAILER-DAEMON 7218 7219<p> 7220The recipient of mail addressed to the null address. Postfix does 7221not accept such addresses in SMTP commands, but they may still be 7222created locally as the result of configuration or software error. 7223</p> 7224 7225%PARAM error_notice_recipient postmaster 7226 7227<p> The recipient of postmaster notifications about mail delivery 7228problems that are caused by policy, resource, software or protocol 7229errors. These notifications are enabled with the notify_classes 7230parameter. </p> 7231 7232%PARAM error_service_name error 7233 7234<p> 7235The name of the error(8) pseudo delivery agent. This service always 7236returns mail as undeliverable. 7237</p> 7238 7239<p> 7240This feature is available in Postfix 2.0 and later. 7241</p> 7242 7243%PARAM expand_owner_alias no 7244 7245<p> 7246When delivering to an alias "aliasname" that has an "owner-aliasname" 7247companion alias, set the envelope sender address to the expansion 7248of the "owner-aliasname" alias. Normally, Postfix sets the envelope 7249sender address to the name of the "owner-aliasname" alias. 7250</p> 7251 7252%PARAM fallback_transport 7253 7254<p> 7255Optional message delivery transport that the local(8) delivery 7256agent should use for names that are not found in the aliases(5) 7257or UNIX password database. 7258</p> 7259 7260<p> The precedence of local(8) delivery features from high to low 7261is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 7262mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 7263fallback_transport_maps, fallback_transport and luser_relay. </p> 7264 7265%PARAM fault_injection_code 0 7266 7267<p> 7268Force specific internal tests to fail, to test the handling of 7269errors that are difficult to reproduce otherwise. 7270</p> 7271 7272%PARAM flush_service_name flush 7273 7274<p> 7275The name of the flush(8) service. This service maintains per-destination 7276logfiles with the queue file names of mail that is queued for those 7277destinations. 7278</p> 7279 7280<p> 7281This feature is available in Postfix 2.0 and later. 7282</p> 7283 7284%PARAM forward_expansion_filter see "postconf -d" output 7285 7286<p> 7287Restrict the characters that the local(8) delivery agent allows in 7288$name expansions of $forward_path. Characters outside the 7289allowed set are replaced by underscores. 7290</p> 7291 7292%PARAM header_address_token_limit 10240 7293 7294<p> 7295The maximal number of address tokens are allowed in an address 7296message header. Information that exceeds the limit is discarded. 7297The limit is enforced by the cleanup(8) server. 7298</p> 7299 7300%PARAM helpful_warnings yes 7301 7302<p> 7303Log warnings about problematic configuration settings, and provide 7304helpful suggestions. 7305</p> 7306 7307<p> 7308This feature is available in Postfix 2.0 and later. 7309</p> 7310 7311%PARAM lmtp_cache_connection yes 7312 7313<p> 7314Keep Postfix LMTP client connections open for up to $max_idle 7315seconds. When the LMTP client receives a request for the same 7316connection the connection is reused. 7317</p> 7318 7319<p> This parameter is available in Postfix version 2.2 and earlier. 7320With Postfix version 2.3 and later, see lmtp_connection_cache_on_demand, 7321lmtp_connection_cache_destinations, or lmtp_connection_reuse_time_limit. 7322</p> 7323 7324<p> 7325The effectiveness of cached connections will be determined by the 7326number of remote LMTP servers in use, and the concurrency limit specified 7327for the Postfix LMTP client. Cached connections are closed under any of 7328the following conditions: 7329</p> 7330 7331<ul> 7332 7333<li> The Postfix LMTP client idle time limit is reached. This limit is 7334specified with the Postfix max_idle configuration parameter. 7335 7336<li> A delivery request specifies a different destination than the 7337one currently cached. 7338 7339<li> The per-process limit on the number of delivery requests is 7340reached. This limit is specified with the Postfix max_use 7341configuration parameter. 7342 7343<li> Upon the onset of another delivery request, the remote LMTP server 7344associated with the current session does not respond to the RSET 7345command. 7346 7347</ul> 7348 7349<p> 7350Most of these limitations have been with the Postfix 7351a connection cache that is shared among multiple LMTP client 7352programs. 7353</p> 7354 7355%PARAM lmtp_sasl_auth_enable no 7356 7357<p> 7358Enable SASL authentication in the Postfix LMTP client. 7359</p> 7360 7361%PARAM lmtp_sasl_password_maps 7362 7363<p> 7364Optional Postfix LMTP client lookup tables with one username:password entry 7365per host or domain. If a remote host or domain has no username:password 7366entry, then the Postfix LMTP client will not attempt to authenticate 7367to the remote host. 7368</p> 7369 7370%PARAM lmtp_sasl_security_options noplaintext, noanonymous 7371 7372<p> SASL security options; as of Postfix 2.3 the list of available 7373features depends on the SASL client implementation that is selected 7374with <b>lmtp_sasl_type</b>. </p> 7375 7376<p> The following security features are defined for the <b>cyrus</b> 7377client SASL implementation: </p> 7378 7379<dl> 7380 7381<dt><b>noplaintext</b></dt> 7382 7383<dd>Disallow authentication methods that use plaintext passwords. </dd> 7384 7385<dt><b>noactive</b></dt> 7386 7387<dd>Disallow authentication methods that are vulnerable to non-dictionary 7388active attacks. </dd> 7389 7390<dt><b>nodictionary</b></dt> 7391 7392<dd>Disallow authentication methods that are vulnerable to passive 7393dictionary attack. </dd> 7394 7395<dt><b>noanonymous</b></dt> 7396 7397<dd>Disallow anonymous logins. </dd> 7398 7399</dl> 7400 7401<p> 7402Example: 7403</p> 7404 7405<pre> 7406lmtp_sasl_security_options = noplaintext 7407</pre> 7408 7409%PARAM lmtp_tcp_port 24 7410 7411<p> 7412The default TCP port that the Postfix LMTP client connects to. 7413</p> 7414 7415%PARAM mail_release_date see "postconf -d" output 7416 7417<p> 7418The Postfix release date, in "YYYYMMDD" format. 7419</p> 7420 7421%PARAM mailbox_command_maps 7422 7423<p> 7424Optional lookup tables with per-recipient external commands to use 7425for local(8) mailbox delivery. Behavior is as with mailbox_command. 7426</p> 7427 7428<p> The precedence of local(8) delivery features from high to low 7429is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 7430mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 7431fallback_transport_maps, fallback_transport and luser_relay. </p> 7432 7433%PARAM mailbox_delivery_lock see "postconf -d" output 7434 7435<p> 7436How to lock a UNIX-style local(8) mailbox before attempting delivery. 7437For a list of available file locking methods, use the "<b>postconf 7438-l</b>" command. 7439</p> 7440 7441<p> 7442This setting is ignored with <b>maildir</b> style delivery, 7443because such deliveries are safe without explicit locks. 7444</p> 7445 7446<p> 7447Note: The <b>dotlock</b> method requires that the recipient UID or 7448GID has write access to the parent directory of the mailbox file. 7449</p> 7450 7451<p> 7452Note: the default setting of this parameter is system dependent. 7453</p> 7454 7455%PARAM mailbox_transport 7456 7457<p> 7458Optional message delivery transport that the local(8) delivery 7459agent should use for mailbox delivery to all local recipients, 7460whether or not they are found in the UNIX passwd database. 7461</p> 7462 7463<p> The precedence of local(8) delivery features from high to low 7464is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 7465mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 7466fallback_transport_maps, fallback_transport and luser_relay. </p> 7467 7468%PARAM mailq_path see "postconf -d" output 7469 7470<p> 7471Sendmail compatibility feature that specifies where the Postfix 7472mailq(1) command is installed. This command can be used to 7473list the Postfix mail queue. 7474</p> 7475 7476%PARAM manpage_directory see "postconf -d" output 7477 7478<p> 7479Where the Postfix manual pages are installed. 7480</p> 7481 7482%PARAM maps_rbl_domains 7483 7484<p> 7485Obsolete feature: use the reject_rbl_client feature instead. 7486</p> 7487 7488%PARAM mime_boundary_length_limit 2048 7489 7490<p> 7491The maximal length of MIME multipart boundary strings. The MIME 7492processor is unable to distinguish between boundary strings that 7493do not differ in the first $mime_boundary_length_limit characters. 7494</p> 7495 7496<p> 7497This feature is available in Postfix 2.0 and later. 7498</p> 7499 7500%PARAM mime_header_checks $header_checks 7501 7502<p> 7503Optional lookup tables for content inspection of MIME related 7504message headers, as described in the header_checks(5) manual page. 7505</p> 7506 7507<p> 7508This feature is available in Postfix 2.0 and later. 7509</p> 7510 7511%PARAM mime_nesting_limit 100 7512 7513<p> 7514The maximal recursion level that the MIME processor will handle. 7515Postfix refuses mail that is nested deeper than the specified limit. 7516</p> 7517 7518<p> 7519This feature is available in Postfix 2.0 and later. 7520</p> 7521 7522%PARAM mynetworks_style subnet 7523 7524<p> 7525The method to generate the default value for the mynetworks parameter. 7526This is the list of trusted networks for relay access control etc. 7527</p> 7528 7529<ul> 7530 7531<li><p>Specify "mynetworks_style = host" when Postfix should 7532"trust" only the local machine. </p> 7533 7534<li><p>Specify "mynetworks_style = subnet" when Postfix 7535should "trust" remote SMTP clients in the same IP subnetworks as the local 7536machine. On Linux, this works correctly only with interfaces 7537specified with the "ifconfig" command. </p> 7538 7539<li><p>Specify "mynetworks_style = class" when Postfix should 7540"trust" remote SMTP clients in the same IP class A/B/C networks as the 7541local machine. Don't do this with a dialup site - it would cause 7542Postfix to "trust" your entire provider's network. Instead, specify 7543an explicit mynetworks list by hand, as described with the mynetworks 7544configuration parameter. </p> 7545 7546</ul> 7547 7548%PARAM nested_header_checks $header_checks 7549 7550<p> 7551Optional lookup tables for content inspection of non-MIME message 7552headers in attached messages, as described in the header_checks(5) 7553manual page. 7554</p> 7555 7556<p> 7557This feature is available in Postfix 2.0 and later. 7558</p> 7559 7560%PARAM newaliases_path see "postconf -d" output 7561 7562<p> 7563Sendmail compatibility feature that specifies the location of the 7564newaliases(1) command. This command can be used to rebuild the 7565local(8) aliases(5) database. 7566</p> 7567 7568%PARAM non_fqdn_reject_code 504 7569 7570<p> 7571The numerical Postfix SMTP server reply code when a client request 7572is rejected by the reject_non_fqdn_helo_hostname, reject_non_fqdn_sender 7573or reject_non_fqdn_recipient restriction. 7574</p> 7575 7576%PARAM owner_request_special yes 7577 7578<p> 7579Give special treatment to owner-listname and listname-request 7580address localparts: don't split such addresses when the 7581recipient_delimiter is set to "-". This feature is useful for 7582mailing lists. 7583</p> 7584 7585%PARAM permit_mx_backup_networks 7586 7587<p> 7588Restrict the use of the permit_mx_backup SMTP access feature to 7589only domains whose primary MX hosts match the listed networks. 7590The parameter value syntax is the same as with the mynetworks 7591parameter; note, however, that the default value is empty. </p> 7592 7593%PARAM pickup_service_name pickup 7594 7595<p> 7596The name of the pickup(8) service. This service picks up local mail 7597submissions from the Postfix maildrop queue. 7598</p> 7599 7600<p> 7601This feature is available in Postfix 2.0 and later. 7602</p> 7603 7604%PARAM prepend_delivered_header command, file, forward 7605 7606<p> The message delivery contexts where the Postfix local(8) delivery 7607agent prepends a Delivered-To: message header with the address 7608that the mail was delivered to. This information is used for mail 7609delivery loop detection. </p> 7610 7611<p> 7612By default, the Postfix local delivery agent prepends a Delivered-To: 7613header when forwarding mail and when delivering to file (mailbox) 7614and command. Turning off the Delivered-To: header when forwarding 7615mail is not recommended. 7616</p> 7617 7618<p> 7619Specify zero or more of <b>forward</b>, <b>file</b>, or <b>command</b>. 7620</p> 7621 7622<p> 7623Example: 7624</p> 7625 7626<pre> 7627prepend_delivered_header = forward 7628</pre> 7629 7630%PARAM process_name read-only 7631 7632<p> 7633The process name of a Postfix command or daemon process. 7634</p> 7635 7636%PARAM process_id read-only 7637 7638<p> 7639The process ID of a Postfix command or daemon process. 7640</p> 7641 7642%PARAM process_id_directory pid 7643 7644<p> 7645The location of Postfix PID files relative to $queue_directory. 7646This is a read-only parameter. 7647</p> 7648 7649%PARAM proxy_read_maps see "postconf -d" output 7650 7651<p> 7652The lookup tables that the proxymap(8) server is allowed to 7653access for the read-only service. 7654Table references that don't begin with proxy: are ignored. 7655</p> 7656 7657<p> 7658This feature is available in Postfix 2.0 and later. 7659</p> 7660 7661%PARAM proxy_write_maps see "postconf -d" output 7662 7663<p> The lookup tables that the proxymap(8) server is allowed to 7664access for the read-write service. Postfix-owned local database 7665files should be stored under the Postfix-owned data_directory. 7666Table references that don't begin with proxy: are ignored. </p> 7667 7668<p> 7669This feature is available in Postfix 2.5 and later. 7670</p> 7671 7672%PARAM qmgr_clog_warn_time 300s 7673 7674<p> 7675The minimal delay between warnings that a specific destination is 7676clogging up the Postfix active queue. Specify 0 to disable. 7677</p> 7678 7679<p> 7680This feature is enabled with the helpful_warnings parameter. 7681</p> 7682 7683<p> 7684This feature is available in Postfix 2.0 and later. 7685</p> 7686 7687%PARAM qmgr_fudge_factor 100 7688 7689<p> 7690Obsolete feature: the percentage of delivery resources that a busy 7691mail system will use up for delivery of a large mailing list 7692message. 7693</p> 7694 7695<p> 7696This feature exists only in the oqmgr(8) old queue manager. The 7697current queue manager solves the problem in a better way. 7698</p> 7699 7700%PARAM queue_directory see "postconf -d" output 7701 7702<p> 7703The location of the Postfix top-level queue directory. This is the 7704root directory of Postfix daemon processes that run chrooted. 7705</p> 7706 7707%PARAM queue_file_attribute_count_limit 100 7708 7709<p> 7710The maximal number of (name=value) attributes that may be stored 7711in a Postfix queue file. The limit is enforced by the cleanup(8) 7712server. 7713</p> 7714 7715<p> 7716This feature is available in Postfix 2.0 and later. 7717</p> 7718 7719%PARAM queue_service_name qmgr 7720 7721<p> 7722The name of the qmgr(8) service. This service manages the Postfix 7723queue and schedules delivery requests. 7724</p> 7725 7726<p> 7727This feature is available in Postfix 2.0 and later. 7728</p> 7729 7730%PARAM html_directory see "postconf -d" output 7731 7732<p> 7733The location of Postfix HTML files that describe how to build, 7734configure or operate a specific Postfix subsystem or feature. 7735</p> 7736 7737%PARAM readme_directory see "postconf -d" output 7738 7739<p> 7740The location of Postfix README files that describe how to build, 7741configure or operate a specific Postfix subsystem or feature. 7742</p> 7743 7744%PARAM relay_transport relay 7745 7746<p> 7747The default mail delivery transport and next-hop destination for 7748remote delivery to domains listed with $relay_domains. In order of 7749decreasing precedence, the nexthop destination is taken from 7750$relay_transport, $sender_dependent_relayhost_maps, $relayhost, or 7751from the recipient domain. This information can be overruled with 7752the transport(5) table. 7753</p> 7754 7755<p> 7756Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i> 7757is the name of a mail delivery transport defined in master.cf. 7758The <i>:nexthop</i> destination is optional; its syntax is documented 7759in the manual page of the corresponding delivery agent. 7760</p> 7761 7762<p> 7763See also the relay domains address class in the ADDRESS_CLASS_README 7764file. 7765</p> 7766 7767<p> 7768This feature is available in Postfix 2.0 and later. 7769</p> 7770 7771%PARAM rewrite_service_name rewrite 7772 7773<p> 7774The name of the address rewriting service. This service rewrites 7775addresses to standard form and resolves them to a (delivery method, 7776next-hop host, recipient) triple. 7777</p> 7778 7779<p> 7780This feature is available in Postfix 2.0 and later. 7781</p> 7782 7783%PARAM sample_directory /etc/postfix 7784 7785<p> 7786The name of the directory with example Postfix configuration files. 7787Starting with Postfix 2.1, these files have been replaced with the 7788postconf(5) manual page. 7789</p> 7790 7791%PARAM sender_based_routing no 7792 7793<p> 7794This parameter should not be used. It was replaced by sender_dependent_relayhost_maps 7795in Postfix version 2.3. 7796</p> 7797 7798%PARAM sendmail_path see "postconf -d" output 7799 7800<p> 7801A Sendmail compatibility feature that specifies the location of 7802the Postfix sendmail(1) command. This command can be used to 7803submit mail into the Postfix queue. 7804</p> 7805 7806%PARAM service_throttle_time 60s 7807 7808<p> 7809How long the Postfix master(8) waits before forking a server that 7810appears to be malfunctioning. 7811</p> 7812 7813<p> 7814Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 7815The default time unit is s (seconds). 7816</p> 7817 7818%PARAM setgid_group postdrop 7819 7820<p> 7821The group ownership of set-gid Postfix commands and of group-writable 7822Postfix directories. When this parameter value is changed you need 7823to re-run "<b>postfix set-permissions</b>" (with Postfix version 2.0 and 7824earlier: "<b>/etc/postfix/post-install set-permissions</b>". 7825</p> 7826 7827%PARAM show_user_unknown_table_name yes 7828 7829<p> 7830Display the name of the recipient table in the "User unknown" 7831responses. The extra detail makes trouble shooting easier but also 7832reveals information that is nobody elses business. 7833</p> 7834 7835<p> 7836This feature is available in Postfix 2.0 and later. 7837</p> 7838 7839%PARAM showq_service_name showq 7840 7841<p> 7842The name of the showq(8) service. This service produces mail queue 7843status reports. 7844</p> 7845 7846<p> 7847This feature is available in Postfix 2.0 and later. 7848</p> 7849 7850%PARAM smtp_pix_workaround_delay_time 10s 7851 7852<p> 7853How long the Postfix SMTP client pauses before sending 7854".<CR><LF>" in order to work around the PIX firewall 7855"<CR><LF>.<CR><LF>" bug. 7856</p> 7857 7858<p> 7859Choosing a too short time makes this workaround ineffective when 7860sending large messages over slow network connections. 7861</p> 7862 7863%PARAM smtp_randomize_addresses yes 7864 7865<p> 7866Randomize the order of equal-preference MX host addresses. This 7867is a performance feature of the Postfix SMTP client. 7868</p> 7869 7870%PARAM smtp_rset_timeout 20s 7871 7872<p> The Postfix SMTP client time limit for sending the RSET command, 7873and for receiving the remote SMTP server response. The SMTP client 7874sends RSET in 7875order to finish a recipient address probe, or to verify that a 7876cached session is still usable. </p> 7877 7878<p> This feature is available in Postfix 2.1 and later. </p> 7879 7880%PARAM smtpd_data_restrictions 7881 7882<p> 7883Optional access restrictions that the Postfix SMTP server applies 7884in the context of the SMTP DATA command. 7885See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 7886restriction lists" for a discussion of evaluation context and time. 7887</p> 7888 7889<p> 7890This feature is available in Postfix 2.0 and later. 7891</p> 7892 7893<p> 7894Specify a list of restrictions, separated by commas and/or whitespace. 7895Continue long lines by starting the next line with whitespace. 7896Restrictions are applied in the order as specified; the first 7897restriction that matches wins. 7898</p> 7899 7900<p> 7901The following restrictions are valid in this context: 7902</p> 7903 7904<ul> 7905 7906<li><a href="#generic">Generic</a> restrictions that can be used 7907in any SMTP command context, described under smtpd_client_restrictions. 7908 7909<li>SMTP command specific restrictions described under 7910smtpd_client_restrictions, smtpd_helo_restrictions, 7911smtpd_sender_restrictions or smtpd_recipient_restrictions. 7912 7913<li>However, no recipient information is available in the case of 7914multi-recipient mail. Acting on only one recipient would be misleading, 7915because any decision will affect all recipients equally. Acting on 7916all recipients would require a possibly very large amount of memory, 7917and would also be misleading for the reasons mentioned before. 7918 7919</ul> 7920 7921<p> 7922Examples: 7923</p> 7924 7925<pre> 7926smtpd_data_restrictions = reject_unauth_pipelining 7927smtpd_data_restrictions = reject_multi_recipient_bounce 7928</pre> 7929 7930%PARAM smtpd_end_of_data_restrictions 7931 7932<p> Optional access restrictions that the Postfix SMTP server 7933applies in the context of the SMTP END-OF-DATA command. 7934See SMTPD_ACCESS_README, section "Delayed evaluation of SMTP access 7935restriction lists" for a discussion of evaluation context and time. 7936</p> 7937 7938<p> This feature is available in Postfix 2.2 and later. </p> 7939 7940<p> See smtpd_data_restrictions for details and limitations. </p> 7941 7942%PARAM smtpd_delay_reject yes 7943 7944<p> 7945Wait until the RCPT TO command before evaluating 7946$smtpd_client_restrictions, $smtpd_helo_restrictions and 7947$smtpd_sender_restrictions, or wait until the ETRN command before 7948evaluating $smtpd_client_restrictions and $smtpd_helo_restrictions. 7949</p> 7950 7951<p> 7952This feature is turned on by default because some clients apparently 7953mis-behave when the Postfix SMTP server rejects commands before 7954RCPT TO. 7955</p> 7956 7957<p> 7958The default setting has one major benefit: it allows Postfix to log 7959recipient address information when rejecting a client name/address 7960or sender address, so that it is possible to find out whose mail 7961is being rejected. 7962</p> 7963 7964%PARAM smtpd_null_access_lookup_key <> 7965 7966<p> 7967The lookup key to be used in SMTP access(5) tables instead of the 7968null sender address. 7969</p> 7970 7971%CLASS smtpd-policy SMTP server policy delegation 7972 7973<p> 7974The Postfix SMTP server has a number of built-in mechanisms to 7975block or accept mail at specific SMTP protocol stages. As of version 79762.1 Postfix can be configured to delegate policy decisions to an 7977external server that runs outside Postfix. See the file 7978SMTPD_POLICY_README for more information. 7979</p> 7980 7981%PARAM smtpd_policy_service_max_idle 300s 7982 7983<p> 7984The time after which an idle SMTPD policy service connection is 7985closed. 7986</p> 7987 7988<p> 7989This feature is available in Postfix 2.1 and later. 7990</p> 7991 7992%PARAM smtpd_policy_service_max_ttl 1000s 7993 7994<p> 7995The time after which an active SMTPD policy service connection is 7996closed. 7997</p> 7998 7999<p> 8000This feature is available in Postfix 2.1 and later. 8001</p> 8002 8003%PARAM smtpd_policy_service_timeout 100s 8004 8005<p> 8006The time limit for connecting to, writing to or receiving from a 8007delegated SMTPD policy server. 8008</p> 8009 8010<p> 8011This feature is available in Postfix 2.1 and later. 8012</p> 8013 8014%PARAM smtpd_reject_unlisted_recipient yes 8015 8016<p> 8017Request that the Postfix SMTP server rejects mail for unknown 8018recipient addresses, even when no explicit reject_unlisted_recipient 8019access restriction is specified. This prevents the Postfix queue 8020from filling up with undeliverable MAILER-DAEMON messages. 8021</p> 8022 8023<p> An address is always considered "known" when it matches a 8024virtual(5) alias or a canonical(5) mapping. 8025 8026<ul> 8027 8028<li> The recipient domain matches $mydestination, $inet_interfaces 8029or $proxy_interfaces, but the recipient is not listed in 8030$local_recipient_maps, and $local_recipient_maps is not null. 8031 8032<li> The recipient domain matches $virtual_alias_domains but the 8033recipient is not listed in $virtual_alias_maps. 8034 8035<li> The recipient domain matches $virtual_mailbox_domains but the 8036recipient is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps 8037is not null. 8038 8039<li> The recipient domain matches $relay_domains but the recipient 8040is not listed in $relay_recipient_maps, and $relay_recipient_maps 8041is not null. 8042 8043</ul> 8044 8045<p> 8046This feature is available in Postfix 2.1 and later. 8047</p> 8048 8049%PARAM smtpd_reject_unlisted_sender no 8050 8051<p> Request that the Postfix SMTP server rejects mail from unknown 8052sender addresses, even when no explicit reject_unlisted_sender 8053access restriction is specified. This can slow down an explosion 8054of forged mail from worms or viruses. </p> 8055 8056<p> An address is always considered "known" when it matches a 8057virtual(5) alias or a canonical(5) mapping. 8058 8059<ul> 8060 8061<li> The sender domain matches $mydestination, $inet_interfaces or 8062$proxy_interfaces, but the sender is not listed in 8063$local_recipient_maps, and $local_recipient_maps is not null. 8064 8065<li> The sender domain matches $virtual_alias_domains but the sender 8066is not listed in $virtual_alias_maps. 8067 8068<li> The sender domain matches $virtual_mailbox_domains but the 8069sender is not listed in $virtual_mailbox_maps, and $virtual_mailbox_maps 8070is not null. 8071 8072<li> The sender domain matches $relay_domains but the sender is 8073not listed in $relay_recipient_maps, and $relay_recipient_maps is 8074not null. 8075 8076</ul> 8077 8078<p> 8079This feature is available in Postfix 2.1 and later. 8080</p> 8081 8082%PARAM smtpd_restriction_classes 8083 8084<p> 8085User-defined aliases for groups of access restrictions. The aliases 8086can be specified in smtpd_recipient_restrictions etc., and on the 8087right-hand side of a Postfix access(5) table. 8088</p> 8089 8090<p> 8091One major application is for implementing per-recipient UCE control. 8092See the RESTRICTION_CLASS_README document for other examples. 8093</p> 8094 8095%PARAM smtpd_sasl_application_name smtpd 8096 8097<p> 8098The application name that the Postfix SMTP server uses for SASL 8099server initialization. This 8100controls the name of the SASL configuration file. The default value 8101is <b>smtpd</b>, corresponding to a SASL configuration file named 8102<b>smtpd.conf</b>. 8103</p> 8104 8105<p> 8106This feature is available in Postfix 2.1 and 2.2. With Postfix 2.3 8107it was renamed to smtpd_sasl_path. 8108</p> 8109 8110%PARAM strict_7bit_headers no 8111 8112<p> 8113Reject mail with 8-bit text in message headers. This blocks mail 8114from poorly written applications. 8115</p> 8116 8117<p> 8118This feature should not be enabled on a general purpose mail server, 8119because it is likely to reject legitimate email. 8120</p> 8121 8122<p> 8123This feature is available in Postfix 2.0 and later. 8124</p> 8125 8126%PARAM strict_8bitmime no 8127 8128<p> 8129Enable both strict_7bit_headers and strict_8bitmime_body. 8130</p> 8131 8132<p> 8133This feature should not be enabled on a general purpose mail server, 8134because it is likely to reject legitimate email. 8135</p> 8136 8137<p> 8138This feature is available in Postfix 2.0 and later. 8139</p> 8140 8141%PARAM strict_8bitmime_body no 8142 8143<p> 8144Reject 8-bit message body text without 8-bit MIME content encoding 8145information. This blocks mail from poorly written applications. 8146</p> 8147 8148<p> 8149Unfortunately, this also rejects majordomo approval requests when 8150the included request contains valid 8-bit MIME mail, and it rejects 8151bounces from mailers that do not MIME encapsulate 8-bit content 8152(for example, bounces from qmail or from old versions of Postfix). 8153</p> 8154 8155<p> 8156This feature should not be enabled on a general purpose mail server, 8157because it is likely to reject legitimate email. 8158</p> 8159 8160<p> 8161This feature is available in Postfix 2.0 and later. 8162</p> 8163 8164%PARAM strict_mime_encoding_domain no 8165 8166<p> 8167Reject mail with invalid Content-Transfer-Encoding: information 8168for the message/* or multipart/* MIME content types. This blocks 8169mail from poorly written software. 8170</p> 8171 8172<p> 8173This feature should not be enabled on a general purpose mail server, 8174because it will reject mail after a single violation. 8175</p> 8176 8177<p> 8178This feature is available in Postfix 2.0 and later. 8179</p> 8180 8181%PARAM sun_mailtool_compatibility no 8182 8183<p> 8184Obsolete SUN mailtool compatibility feature. Instead, use 8185"mailbox_delivery_lock = dotlock". 8186</p> 8187 8188%PARAM trace_service_name trace 8189 8190<p> 8191The name of the trace service. This service is implemented by the 8192bounce(8) daemon and maintains a record 8193of mail deliveries and produces a mail delivery report when verbose 8194delivery is requested with "<b>sendmail -v</b>". 8195</p> 8196 8197<p> 8198This feature is available in Postfix 2.1 and later. 8199</p> 8200 8201%PARAM undisclosed_recipients_header see "postconf -d" output 8202 8203<p> 8204Message header that the Postfix cleanup(8) server inserts when a 8205message contains no To: or Cc: message header. With Postfix 2.8 8206and later, the default value is empty. With Postfix 2.4-2.7, 8207specify an empty value to disable this feature. </p> 8208 8209<p> Example: </p> 8210 8211<pre> 8212# Default value before Postfix 2.8. 8213# Note: the ":" and ";" are both required. 8214undisclosed_recipients_header = To: undisclosed-recipients:; 8215</pre> 8216 8217%PARAM unknown_relay_recipient_reject_code 550 8218 8219<p> 8220The numerical Postfix SMTP server reply code when a recipient 8221address matches $relay_domains, and relay_recipient_maps specifies 8222a list of lookup tables that does not match the recipient address. 8223</p> 8224 8225<p> 8226This feature is available in Postfix 2.0 and later. 8227</p> 8228 8229%PARAM unknown_virtual_alias_reject_code 550 8230 8231<p> 8232The Postfix SMTP server reply code when a recipient address matches 8233$virtual_alias_domains, and $virtual_alias_maps specifies a list 8234of lookup tables that does not match the recipient address. 8235</p> 8236 8237<p> 8238This feature is available in Postfix 2.0 and later. 8239</p> 8240 8241%PARAM unknown_virtual_mailbox_reject_code 550 8242 8243<p> 8244The Postfix SMTP server reply code when a recipient address matches 8245$virtual_mailbox_domains, and $virtual_mailbox_maps specifies a list 8246of lookup tables that does not match the recipient address. 8247</p> 8248 8249<p> 8250This feature is available in Postfix 2.0 and later. 8251</p> 8252 8253%PARAM verp_delimiter_filter -=+ 8254 8255<p> 8256The characters Postfix accepts as VERP delimiter characters on the 8257Postfix sendmail(1) command line and in SMTP commands. 8258</p> 8259 8260<p> 8261This feature is available in Postfix 1.1 and later. 8262</p> 8263 8264%PARAM virtual_gid_maps 8265 8266<p> 8267Lookup tables with the per-recipient group ID for virtual(8) mailbox 8268delivery. 8269</p> 8270 8271<p> 8272In a lookup table, specify a left-hand side of "@domain.tld" to 8273match any user in the specified domain that does not have a specific 8274"user@domain.tld" entry. 8275</p> 8276 8277<p> 8278When a recipient address has an optional address extension 8279(user+foo@domain.tld), the virtual(8) delivery agent looks up 8280the full address first, and when the lookup fails, it looks up the 8281unextended address (user@domain.tld). 8282</p> 8283 8284<p> 8285Note 1: for security reasons, the virtual(8) delivery agent disallows 8286regular expression substitution of $1 etc. in regular expression 8287lookup tables, because that would open a security hole. 8288</p> 8289 8290<p> 8291Note 2: for security reasons, the virtual(8) delivery agent will 8292silently ignore requests to use the proxymap(8) server. Instead 8293it will open the table directly. Before Postfix version 2.2, the 8294virtual(8) delivery agent will terminate with a fatal error. 8295</p> 8296 8297%PARAM virtual_mailbox_base 8298 8299<p> 8300A prefix that the virtual(8) delivery agent prepends to all pathname 8301results from $virtual_mailbox_maps table lookups. This is a safety 8302measure to ensure that an out of control map doesn't litter the 8303file system with mailboxes. While virtual_mailbox_base could be 8304set to "/", this setting isn't recommended. 8305</p> 8306 8307<p> 8308Example: 8309</p> 8310 8311<pre> 8312virtual_mailbox_base = /var/mail 8313</pre> 8314 8315%PARAM virtual_mailbox_domains $virtual_mailbox_maps 8316 8317<p> Postfix is final destination for the specified list of domains; 8318mail is delivered via the $virtual_transport mail delivery transport. 8319By default this is the Postfix virtual(8) delivery agent. The SMTP 8320server validates recipient addresses with $virtual_mailbox_maps 8321and rejects mail for non-existent recipients. See also the virtual 8322mailbox domain class in the ADDRESS_CLASS_README file. </p> 8323 8324<p> This parameter expects the same syntax as the mydestination 8325configuration parameter. </p> 8326 8327<p> 8328This feature is available in Postfix 2.0 and later. The default 8329value is backwards compatible with Postfix version 1.1. 8330</p> 8331 8332%PARAM virtual_mailbox_limit 51200000 8333 8334<p> 8335The maximal size in bytes of an individual virtual(8) mailbox or 8336maildir file, or zero (no limit). </p> 8337 8338%PARAM virtual_mailbox_lock see "postconf -d" output 8339 8340<p> 8341How to lock a UNIX-style virtual(8) mailbox before attempting 8342delivery. For a list of available file locking methods, use the 8343"<b>postconf -l</b>" command. 8344</p> 8345 8346<p> 8347This setting is ignored with <b>maildir</b> style delivery, because 8348such deliveries are safe without application-level locks. 8349</p> 8350 8351<p> 8352Note 1: the <b>dotlock</b> method requires that the recipient UID 8353or GID has write access to the parent directory of the recipient's 8354mailbox file. 8355</p> 8356 8357<p> 8358Note 2: the default setting of this parameter is system dependent. 8359</p> 8360 8361%PARAM virtual_mailbox_maps 8362 8363<p> 8364Optional lookup tables with all valid addresses in the domains that 8365match $virtual_mailbox_domains. 8366</p> 8367 8368<p> 8369In a lookup table, specify a left-hand side of "@domain.tld" to 8370match any user in the specified domain that does not have a specific 8371"user@domain.tld" entry. 8372</p> 8373 8374<p> 8375The virtual(8) delivery agent uses this table to look up the 8376per-recipient mailbox or maildir pathname. If the lookup result 8377ends in a slash ("/"), maildir-style delivery is carried out, 8378otherwise the path is assumed to specify a UNIX-style mailbox file. 8379Note that $virtual_mailbox_base is unconditionally prepended to 8380this path. 8381</p> 8382 8383<p> 8384When a recipient address has an optional address extension 8385(user+foo@domain.tld), the virtual(8) delivery agent looks up 8386the full address first, and when the lookup fails, it looks up the 8387unextended address (user@domain.tld). 8388</p> 8389 8390<p> 8391Note 1: for security reasons, the virtual(8) delivery agent disallows 8392regular expression substitution of $1 etc. in regular expression 8393lookup tables, because that would open a security hole. 8394</p> 8395 8396<p> 8397Note 2: for security reasons, the virtual(8) delivery agent will 8398silently ignore requests to use the proxymap(8) server. Instead 8399it will open the table directly. Before Postfix version 2.2, the 8400virtual(8) delivery agent will terminate with a fatal error. 8401</p> 8402 8403%PARAM virtual_minimum_uid 100 8404 8405<p> 8406The minimum user ID value that the virtual(8) delivery agent accepts 8407as a result from $virtual_uid_maps table lookup. Returned 8408values less than this will be rejected, and the message will be 8409deferred. 8410</p> 8411 8412%PARAM virtual_transport virtual 8413 8414<p> 8415The default mail delivery transport and next-hop destination for 8416final delivery to domains listed with $virtual_mailbox_domains. 8417This information can be overruled with the transport(5) table. 8418</p> 8419 8420<p> 8421Specify a string of the form <i>transport:nexthop</i>, where <i>transport</i> 8422is the name of a mail delivery transport defined in master.cf. 8423The <i>:nexthop</i> destination is optional; its syntax is documented 8424in the manual page of the corresponding delivery agent. 8425</p> 8426 8427<p> 8428This feature is available in Postfix 2.0 and later. 8429</p> 8430 8431%PARAM virtual_uid_maps 8432 8433<p> 8434Lookup tables with the per-recipient user ID that the virtual(8) 8435delivery agent uses while writing to the recipient's mailbox. 8436</p> 8437 8438<p> 8439In a lookup table, specify a left-hand side of "@domain.tld" 8440to match any user in the specified domain that does not have a 8441specific "user@domain.tld" entry. 8442</p> 8443 8444<p> 8445When a recipient address has an optional address extension 8446(user+foo@domain.tld), the virtual(8) delivery agent looks up 8447the full address first, and when the lookup fails, it looks up the 8448unextended address (user@domain.tld). 8449</p> 8450 8451<p> 8452Note 1: for security reasons, the virtual(8) delivery agent disallows 8453regular expression substitution of $1 etc. in regular expression 8454lookup tables, because that would open a security hole. 8455</p> 8456 8457<p> 8458Note 2: for security reasons, the virtual(8) delivery agent will 8459silently ignore requests to use the proxymap(8) server. Instead 8460it will open the table directly. Before Postfix version 2.2, the 8461virtual(8) delivery agent will terminate with a fatal error. 8462</p> 8463 8464%PARAM config_directory see "postconf -d" output 8465 8466<p> The default location of the Postfix main.cf and master.cf 8467configuration files. This can be overruled via the following 8468mechanisms: </p> 8469 8470<ul> 8471 8472<li> <p> The MAIL_CONFIG environment variable (daemon processes 8473and commands). </p> 8474 8475<li> <p> The "-c" command-line option (commands only). </p> 8476 8477</ul> 8478 8479<p> With Postfix command that run with set-gid privileges, a 8480config_directory override requires either root privileges, or it 8481requires that the directory is listed with the alternate_config_directories 8482parameter in the default main.cf file. </p> 8483 8484%PARAM virtual_maps 8485 8486<p> Optional lookup tables with a) names of domains for which all 8487addresses are aliased to addresses in other local or remote domains, 8488and b) addresses that are aliased to addresses in other local or 8489remote domains. Available before Postfix version 2.0. With Postfix 8490version 2.0 and later, this is replaced by separate controls: virtual_alias_domains 8491and virtual_alias_maps. </p> 8492 8493%PARAM smtp_discard_ehlo_keywords 8494 8495<p> A case insensitive list of EHLO keywords (pipelining, starttls, 8496auth, etc.) that the Postfix SMTP client will ignore in the EHLO 8497response from a remote SMTP server. </p> 8498 8499<p> This feature is available in Postfix 2.2 and later. </p> 8500 8501<p> Notes: </p> 8502 8503<ul> 8504 8505<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent 8506this action from being logged. </p> 8507 8508<li> <p> Use the smtp_discard_ehlo_keyword_address_maps feature to 8509discard EHLO keywords selectively. </p> 8510 8511</ul> 8512 8513%PARAM smtpd_discard_ehlo_keywords 8514 8515<p> A case insensitive list of EHLO keywords (pipelining, starttls, 8516auth, etc.) that the Postfix SMTP server will not send in the EHLO 8517response 8518to a remote SMTP client. </p> 8519 8520<p> This feature is available in Postfix 2.2 and later. </p> 8521 8522<p> Notes: </p> 8523 8524<ul> 8525 8526<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent 8527this action from being logged. </p> 8528 8529<li> <p> Use the smtpd_discard_ehlo_keyword_address_maps feature 8530to discard EHLO keywords selectively. </p> 8531 8532</ul> 8533 8534%PARAM smtp_discard_ehlo_keyword_address_maps 8535 8536<p> Lookup tables, indexed by the remote SMTP server address, with 8537case insensitive lists of EHLO keywords (pipelining, starttls, auth, 8538etc.) that the Postfix SMTP client will ignore in the EHLO response from a 8539remote SMTP server. See smtp_discard_ehlo_keywords for details. The 8540table is not indexed by hostname for consistency with 8541smtpd_discard_ehlo_keyword_address_maps. </p> 8542 8543<p> This feature is available in Postfix 2.2 and later. </p> 8544 8545%PARAM smtpd_discard_ehlo_keyword_address_maps 8546 8547<p> Lookup tables, indexed by the remote SMTP client address, with 8548case insensitive lists of EHLO keywords (pipelining, starttls, auth, 8549etc.) that the Postfix SMTP server will not send in the EHLO response 8550to a 8551remote SMTP client. See smtpd_discard_ehlo_keywords for details. 8552The table is not searched by hostname for robustness reasons. </p> 8553 8554<p> This feature is available in Postfix 2.2 and later. </p> 8555 8556%PARAM connection_cache_service_name scache 8557 8558<p> The name of the scache(8) connection cache service. This service 8559maintains a limited pool of cached sessions. </p> 8560 8561<p> This feature is available in Postfix 2.2 and later. </p> 8562 8563%PARAM connection_cache_ttl_limit 2s 8564 8565<p> The maximal time-to-live value that the scache(8) connection 8566cache server 8567allows. Requests that specify a larger TTL will be stored with the 8568maximum allowed TTL. The purpose of this additional control is to 8569protect the infrastructure against careless people. The cache TTL 8570is already bounded by $max_idle. </p> 8571 8572%PARAM connection_cache_status_update_time 600s 8573 8574<p> How frequently the scache(8) server logs usage statistics with 8575connection cache hit and miss rates for logical destinations and for 8576physical endpoints. </p> 8577 8578%PARAM remote_header_rewrite_domain 8579 8580<p> Don't rewrite message headers from remote clients at all when 8581this parameter is empty; otherwise, rewrite message headers and 8582append the specified domain name to incomplete addresses. The 8583local_header_rewrite_clients parameter controls what clients Postfix 8584considers local. </p> 8585 8586<p> Examples: </p> 8587 8588<p> The safe setting: append "domain.invalid" to incomplete header 8589addresses from remote SMTP clients, so that those addresses cannot 8590be confused with local addresses. </p> 8591 8592<blockquote> 8593<pre> 8594remote_header_rewrite_domain = domain.invalid 8595</pre> 8596</blockquote> 8597 8598<p> The default, purist, setting: don't rewrite headers from remote 8599clients at all. </p> 8600 8601<blockquote> 8602<pre> 8603remote_header_rewrite_domain = 8604</pre> 8605</blockquote> 8606 8607%PARAM local_header_rewrite_clients permit_inet_interfaces 8608 8609<p> Rewrite message header addresses in mail from these clients and 8610update incomplete addresses with the domain name in $myorigin or 8611$mydomain; either don't rewrite message headers from other clients 8612at all, or rewrite message headers and update incomplete addresses 8613with the domain specified in the remote_header_rewrite_domain 8614parameter. </p> 8615 8616<p> See the append_at_myorigin and append_dot_mydomain parameters 8617for details of how domain names are appended to incomplete addresses. 8618</p> 8619 8620<p> Specify a list of zero or more of the following: </p> 8621 8622<dl> 8623 8624<dt><b>permit_inet_interfaces</b></dt> 8625 8626<dd> Append the domain name in $myorigin or $mydomain when the 8627client IP address matches $inet_interfaces. This is enabled by 8628default. </dd> 8629 8630<dt><b>permit_mynetworks</b></dt> 8631 8632<dd> Append the domain name in $myorigin or $mydomain when the 8633client IP address matches any network or network address listed in 8634$mynetworks. This setting will not prevent remote mail header 8635address rewriting when mail from a remote client is forwarded by 8636a neighboring system. </dd> 8637 8638<dt><b>permit_sasl_authenticated </b></dt> 8639 8640<dd> Append the domain name in $myorigin or $mydomain when the 8641client is successfully authenticated via the RFC 4954 (AUTH) 8642protocol. </dd> 8643 8644<dt><b>permit_tls_clientcerts </b></dt> 8645 8646<dd> Append the domain name in $myorigin or $mydomain when the 8647remote SMTP client TLS certificate fingerprint or public key fingerprint 8648(Postfix 2.9 and later) is listed in $relay_clientcerts. 8649The fingerprint digest algorithm is configurable via the 8650smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to 8651Postfix version 2.5). </dd> 8652 8653<dt><b>permit_tls_all_clientcerts </b></dt> 8654 8655<dd> Append the domain name in $myorigin or $mydomain when the 8656remote SMTP client TLS certificate is successfully verified, regardless of 8657whether it is listed on the server, and regardless of the certifying 8658authority. </dd> 8659 8660<dt><b><a name="check_address_map">check_address_map</a> <i><a href="DATABASE_README.html">type:table</a></i> </b></dt> 8661 8662<dt><b><i><a href="DATABASE_README.html">type:table</a></i> </b></dt> 8663 8664<dd> Append the domain name in $myorigin or $mydomain when the 8665client IP address matches the specified lookup table. 8666The lookup result is ignored, and no subnet lookup is done. This 8667is suitable for, e.g., pop-before-smtp lookup tables. </dd> 8668 8669</dl> 8670 8671<p> Examples: </p> 8672 8673<p> The Postfix < 2.2 backwards compatible setting: always rewrite 8674message headers, and always append my own domain to incomplete 8675header addresses. </p> 8676 8677<blockquote> 8678<pre> 8679local_header_rewrite_clients = static:all 8680</pre> 8681</blockquote> 8682 8683<p> The purist (and default) setting: rewrite headers only in mail 8684from Postfix sendmail and in SMTP mail from this machine. </p> 8685 8686<blockquote> 8687<pre> 8688local_header_rewrite_clients = permit_inet_interfaces 8689</pre> 8690</blockquote> 8691 8692<p> The intermediate setting: rewrite header addresses and append 8693$myorigin or $mydomain information only with mail from Postfix 8694sendmail, from local clients, or from authorized SMTP clients. </p> 8695 8696<p> Note: this setting will not prevent remote mail header address 8697rewriting when mail from a remote client is forwarded by a neighboring 8698system. </p> 8699 8700<blockquote> 8701<pre> 8702local_header_rewrite_clients = permit_mynetworks, 8703 permit_sasl_authenticated permit_tls_clientcerts 8704 check_address_map hash:/etc/postfix/pop-before-smtp 8705</pre> 8706</blockquote> 8707 8708%PARAM smtpd_tls_cert_file 8709 8710<p> File with the Postfix SMTP server RSA certificate in PEM format. 8711This file may also contain the Postfix SMTP server private RSA key. </p> 8712 8713<p> Public Internet MX hosts without certificates signed by a "reputable" 8714CA must generate, and be prepared to present to most clients, a 8715self-signed or private-CA signed certificate. The client will not be 8716able to authenticate the server, but unless it is running Postfix 2.3 or 8717similar software, it will still insist on a server certificate. </p> 8718 8719<p> For servers that are <b>not</b> public Internet MX hosts, Postfix 87202.3 supports configurations with no certificates. This entails the 8721use of just the anonymous TLS ciphers, which are not supported by 8722typical SMTP clients. Since such clients will not, as a rule, fall 8723back to plain text after a TLS handshake failure, the server will 8724be unable to receive email from TLS enabled clients. To avoid 8725accidental configurations with no certificates, Postfix 2.3 enables 8726certificate-less operation only when the administrator explicitly 8727sets "smtpd_tls_cert_file = none". This ensures that new Postfix 8728configurations will not accidentally run with no certificates. </p> 8729 8730<p> Both RSA and DSA certificates are supported. When both types 8731are present, the cipher used determines which certificate will be 8732presented to the client. For Netscape and OpenSSL clients without 8733special cipher choices the RSA certificate is preferred. </p> 8734 8735<p> To enable a remote SMTP client to verify the Postfix SMTP server 8736certificate, the issuing CA certificates must be made available to the 8737client. You should include the required certificates in the server 8738certificate file, the server certificate first, then the issuing 8739CA(s) (bottom-up order). </p> 8740 8741<p> Example: the certificate for "server.example.com" was issued by 8742"intermediate CA" which itself has a certificate of "root CA". 8743Create the server.pem file with "cat server_cert.pem intermediate_CA.pem 8744root_CA.pem > server.pem". </p> 8745 8746<p> If you also want to verify client certificates issued by these 8747CAs, you can add the CA certificates to the smtpd_tls_CAfile, in which 8748case it is not necessary to have them in the smtpd_tls_cert_file or 8749smtpd_tls_dcert_file. </p> 8750 8751<p> A certificate supplied here must be usable as an SSL server certificate 8752and hence pass the "openssl verify -purpose sslserver ..." test. </p> 8753 8754<p> Example: </p> 8755 8756<pre> 8757smtpd_tls_cert_file = /etc/postfix/server.pem 8758</pre> 8759 8760<p> This feature is available in Postfix 2.2 and later. </p> 8761 8762%PARAM smtpd_tls_key_file $smtpd_tls_cert_file 8763 8764<p> File with the Postfix SMTP server RSA private key in PEM format. 8765This file may be combined with the Postfix SMTP server RSA certificate 8766file specified with $smtpd_tls_cert_file. </p> 8767 8768<p> The private key must be accessible without a pass-phrase, i.e. it 8769must not be encrypted. File permissions should grant read-only 8770access to the system superuser account ("root"), and no access 8771to anyone else. </p> 8772 8773%PARAM smtpd_tls_dcert_file 8774 8775<p> File with the Postfix SMTP server DSA certificate in PEM format. 8776This file may also contain the Postfix SMTP server private DSA key. </p> 8777 8778<p> See the discussion under smtpd_tls_cert_file for more details. 8779</p> 8780 8781<p> Example: </p> 8782 8783<pre> 8784smtpd_tls_dcert_file = /etc/postfix/server-dsa.pem 8785</pre> 8786 8787<p> This feature is available in Postfix 2.2 and later. </p> 8788 8789%PARAM smtpd_tls_dkey_file $smtpd_tls_dcert_file 8790 8791<p> File with the Postfix SMTP server DSA private key in PEM format. 8792This file may be combined with the Postfix SMTP server DSA certificate 8793file specified with $smtpd_tls_dcert_file. </p> 8794 8795<p> The private key must be accessible without a pass-phrase, i.e. it 8796must not be encrypted. File permissions should grant read-only 8797access to the system superuser account ("root"), and no access 8798to anyone else. </p> 8799 8800<p> This feature is available in Postfix 2.2 and later. </p> 8801 8802%PARAM smtpd_tls_CAfile 8803 8804<p> A file containing (PEM format) CA certificates of root CAs trusted 8805to sign either remote SMTP client certificates or intermediate CA 8806certificates. These are loaded into memory before the smtpd(8) server 8807enters the chroot jail. If the number of trusted roots is large, consider 8808using smtpd_tls_CApath instead, but note that the latter directory must 8809be present in the chroot jail if the smtpd(8) server is chrooted. This 8810file may also be used to augment the server certificate trust chain, 8811but it is best to include all the required certificates directly in the 8812server certificate file. </p> 8813 8814<p> Specify "tls_append_default_CA = no" to prevent Postfix from 8815appending the system-supplied default CAs and trusting third-party 8816certificates. </p> 8817 8818<p> By default (see smtpd_tls_ask_ccert), client certificates are not 8819requested, and smtpd_tls_CAfile should remain empty. If you do make use 8820of client certificates, the distinguished names (DNs) of the certificate 8821authorities listed in smtpd_tls_CAfile are sent to the remote SMTP client 8822in the client certificate request message. MUAs with multiple client 8823certificates may use the list of preferred certificate authorities 8824to select the correct client certificate. You may want to put your 8825"preferred" CA or CAs in this file, and install other trusted CAs in 8826$smtpd_tls_CApath. </p> 8827 8828<p> Example: </p> 8829 8830<pre> 8831smtpd_tls_CAfile = /etc/postfix/CAcert.pem 8832</pre> 8833 8834<p> This feature is available in Postfix 2.2 and later. </p> 8835 8836%PARAM smtpd_tls_CApath 8837 8838<p> A directory containing (PEM format) CA certificates of root CAs 8839trusted to sign either remote SMTP client certificates or intermediate CA 8840certificates. Do not forget to create the necessary "hash" links with, 8841for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". To use 8842smtpd_tls_CApath in chroot mode, this directory (or a copy) must be 8843inside the chroot jail. </p> 8844 8845<p> Specify "tls_append_default_CA = no" to prevent Postfix from 8846appending the system-supplied default CAs and trusting third-party 8847certificates. </p> 8848 8849<p> By default (see smtpd_tls_ask_ccert), client certificates are 8850not requested, and smtpd_tls_CApath should remain empty. In contrast 8851to smtpd_tls_CAfile, DNs of certificate authorities installed 8852in $smtpd_tls_CApath are not included in the client certificate 8853request message. MUAs with multiple client certificates may use the 8854list of preferred certificate authorities to select the correct 8855client certificate. You may want to put your "preferred" CA or 8856CAs in $smtpd_tls_CAfile, and install the remaining trusted CAs in 8857$smtpd_tls_CApath. </p> 8858 8859<p> Example: </p> 8860 8861<pre> 8862smtpd_tls_CApath = /etc/postfix/certs 8863</pre> 8864 8865<p> This feature is available in Postfix 2.2 and later. </p> 8866 8867%PARAM smtpd_tls_loglevel 0 8868 8869<p> Enable additional Postfix SMTP server logging of TLS activity. 8870Each logging level also includes the information that is logged at 8871a lower logging level. </p> 8872 8873<dl compact> 8874 8875<dt> </dt> <dd> 0 Log only a summary message on TLS handshake completion 8876— no logging of remote SMTP client certificate trust-chain verification 8877errors 8878if client certificate verification is not required. With Postfix 2.8 8879and earlier, disable logging of TLS activity. </dd> 8880 8881<dt> </dt> <dd> 1 Also log trust-chain verification errors and peer 8882certificate name and issuer. With Postfix 2.8 and earlier, log TLS 8883handshake and certificate information. </dd> 8884 8885<dt> </dt> <dd> 2 Also log levels during TLS negotiation. </dd> 8886 8887<dt> </dt> <dd> 3 Also log hexadecimal and ASCII dump of TLS negotiation 8888process. </dd> 8889 8890<dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete 8891transmission after STARTTLS. </dd> 8892 8893</dl> 8894 8895<p> Do not use "smtpd_tls_loglevel = 2" or higher except in case 8896of problems. Use of loglevel 4 is strongly discouraged. </p> 8897 8898<p> This feature is available in Postfix 2.2 and later. </p> 8899 8900%PARAM smtpd_tls_received_header no 8901 8902<p> Request that the Postfix SMTP server produces Received: message 8903headers that include information about the protocol and cipher used, 8904as well as the remote SMTP client CommonName and client certificate issuer 8905CommonName. This is disabled by default, as the information may 8906be modified in transit through other mail servers. Only information 8907that was recorded by the final destination can be trusted. </p> 8908 8909<p> This feature is available in Postfix 2.2 and later. </p> 8910 8911%PARAM smtpd_use_tls no 8912 8913<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients, 8914but do not require that clients use TLS encryption. </p> 8915 8916<p> Note: when invoked via "<b>sendmail -bs</b>", Postfix will never offer 8917STARTTLS due to insufficient privileges to access the server private 8918key. This is intended behavior. </p> 8919 8920<p> This feature is available in Postfix 2.2 and later. With 8921Postfix 2.3 and later use smtpd_tls_security_level instead. </p> 8922 8923%PARAM smtpd_enforce_tls no 8924 8925<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, 8926and require that clients use TLS encryption. According to RFC 2487 8927this MUST NOT be applied in case of a publicly-referenced SMTP 8928server. This option is therefore off by default. </p> 8929 8930<p> Note 1: "smtpd_enforce_tls = yes" implies "smtpd_tls_auth_only = yes". </p> 8931 8932<p> Note 2: when invoked via "<b>sendmail -bs</b>", Postfix will never offer 8933STARTTLS due to insufficient privileges to access the server private 8934key. This is intended behavior. </p> 8935 8936<p> This feature is available in Postfix 2.2 and later. With 8937Postfix 2.3 and later use smtpd_tls_security_level instead. </p> 8938 8939%PARAM smtpd_tls_wrappermode no 8940 8941<p> Run the Postfix SMTP server in the non-standard "wrapper" mode, 8942instead of using the STARTTLS command. </p> 8943 8944<p> If you want to support this service, enable a special port in 8945master.cf, and specify "-o smtpd_tls_wrappermode=yes" on the SMTP 8946server's command line. Port 465 (smtps) was once chosen for this 8947purpose. </p> 8948 8949<p> This feature is available in Postfix 2.2 and later. </p> 8950 8951%PARAM smtpd_tls_ask_ccert no 8952 8953<p> Ask a remote SMTP client for a client certificate. This 8954information is needed for certificate based mail relaying with, 8955for example, the permit_tls_clientcerts feature. </p> 8956 8957<p> Some clients such as Netscape will either complain if no 8958certificate is available (for the list of CAs in $smtpd_tls_CAfile) 8959or will offer multiple client certificates to choose from. This 8960may be annoying, so this option is "off" by default. </p> 8961 8962<p> This feature is available in Postfix 2.2 and later. </p> 8963 8964%PARAM smtpd_tls_req_ccert no 8965 8966<p> With mandatory TLS encryption, require a trusted remote SMTP client 8967certificate in order to allow TLS connections to proceed. This 8968option implies "smtpd_tls_ask_ccert = yes". </p> 8969 8970<p> When TLS encryption is optional, this setting is ignored with 8971a warning written to the mail log. </p> 8972 8973<p> This feature is available in Postfix 2.2 and later. </p> 8974 8975%PARAM smtpd_tls_ccert_verifydepth 9 8976 8977<p> The verification depth for remote SMTP client certificates. A 8978depth of 1 is sufficient if the issuing CA is listed in a local CA 8979file. </p> 8980 8981<p> The default verification depth is 9 (the OpenSSL default) for 8982compatibility with earlier Postfix behavior. Prior to Postfix 2.5, 8983the default value was 5, but the limit was not actually enforced. If 8984you have set this to a lower non-default value, certificates with longer 8985trust chains may now fail to verify. Certificate chains with 1 or 2 8986CAs are common, deeper chains are more rare and any number between 5 8987and 9 should suffice in practice. You can choose a lower number if, 8988for example, you trust certificates directly signed by an issuing CA 8989but not any CAs it delegates to. </p> 8990 8991<p> This feature is available in Postfix 2.2 and later. </p> 8992 8993%PARAM smtpd_tls_auth_only no 8994 8995<p> When TLS encryption is optional in the Postfix SMTP server, do 8996not announce or accept SASL authentication over unencrypted 8997connections. </p> 8998 8999<p> This feature is available in Postfix 2.2 and later. </p> 9000 9001%PARAM smtpd_tls_session_cache_database 9002 9003<p> Name of the file containing the optional Postfix SMTP server 9004TLS session cache. Specify a database type that supports enumeration, 9005such as <b>btree</b> or <b>sdbm</b>; there is no need to support 9006concurrent access. The file is created if it does not exist. The smtpd(8) 9007daemon does not use this parameter directly, rather the cache is 9008implemented indirectly in the tlsmgr(8) daemon. This means that 9009per-smtpd-instance master.cf overrides of this parameter are not 9010effective. Note, that each of the cache databases supported by tlsmgr(8) 9011daemon: $smtpd_tls_session_cache_database, $smtp_tls_session_cache_database 9012(and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to be 9013stored separately. It is not at this time possible to store multiple 9014caches in a single database. </p> 9015 9016<p> Note: <b>dbm</b> databases are not suitable. TLS 9017session objects are too large. </p> 9018 9019<p> As of version 2.5, Postfix no longer uses root privileges when 9020opening this file. The file should now be stored under the Postfix-owned 9021data_directory. As a migration aid, an attempt to open the file 9022under a non-Postfix directory is redirected to the Postfix-owned 9023data_directory, and a warning is logged. </p> 9024 9025<p> Example: </p> 9026 9027<pre> 9028smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_scache 9029</pre> 9030 9031<p> This feature is available in Postfix 2.2 and later. </p> 9032 9033%PARAM smtpd_tls_session_cache_timeout 3600s 9034 9035<p> The expiration time of Postfix SMTP server TLS session cache 9036information. A cache cleanup is performed periodically 9037every $smtpd_tls_session_cache_timeout seconds. As with 9038$smtpd_tls_session_cache_database, this parameter is implemented in the 9039tlsmgr(8) daemon and therefore per-smtpd-instance master.cf overrides 9040are not possible. </p> 9041 9042<p> This feature is available in Postfix 2.2 and later. </p> 9043 9044%PARAM relay_clientcerts 9045 9046<p> List of tables with remote SMTP client-certificate fingerprints or 9047public key fingerprints (Postfix 2.9 and later) for which the Postfix 9048SMTP server will allow access with the permit_tls_clientcerts 9049feature. The fingerprint digest algorithm is configurable via the 9050smtpd_tls_fingerprint_digest parameter (hard-coded as md5 prior to 9051Postfix version 2.5). </p> 9052 9053<p> Postfix lookup tables are in the form of (key, value) pairs. 9054Since we only need the key, the value can be chosen freely, e.g. 9055the name of the user or host: 9056D7:04:2F:A7:0B:8C:A5:21:FA:31:77:E1:41:8A:EE:80 lutzpc.at.home </p> 9057 9058<p> Example: </p> 9059 9060<pre> 9061relay_clientcerts = hash:/etc/postfix/relay_clientcerts 9062</pre> 9063 9064<p>For more fine-grained control, use check_ccert_access to select 9065an appropriate access(5) policy for each client. 9066See RESTRICTION_CLASS_README.</p> 9067 9068<p>This feature is available with Postfix version 2.2.</p> 9069 9070%PARAM smtpd_tls_cipherlist 9071 9072<p> Obsolete Postfix < 2.3 control for the Postfix SMTP server TLS 9073cipher list. It is easy to create inter-operability problems by choosing 9074a non-default cipher list. Do not use a non-default TLS cipherlist for 9075MX hosts on the public Internet. Clients that begin the TLS handshake, 9076but are unable to agree on a common cipher, may not be able to send any 9077email to the SMTP server. Using a restricted cipher list may be more 9078appropriate for a dedicated MSA or an internal mailhub, where one can 9079exert some control over the TLS software and settings of the connecting 9080clients. </p> 9081 9082<p> <b>Note:</b> do not use "" quotes around the parameter value. </p> 9083 9084<p>This feature is available with Postfix version 2.2. It is not used with 9085Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead. </p> 9086 9087%PARAM smtpd_tls_dh1024_param_file 9088 9089<p> File with DH parameters that the Postfix SMTP server should 9090use with EDH ciphers. </p> 9091 9092<p> Instead of using the exact same parameter sets as distributed 9093with other TLS packages, it is more secure to generate your own 9094set of parameters with something like the following command: </p> 9095 9096<blockquote> 9097<pre> 9098openssl gendh -out /etc/postfix/dh_1024.pem -2 1024 9099</pre> 9100</blockquote> 9101 9102<p> Your actual source for entropy may differ. Some systems have 9103/dev/random; on other system you may consider using the "Entropy 9104Gathering Daemon EGD", available at http://egd.sourceforge.net/ 9105</p> 9106 9107<p> Example: </p> 9108 9109<pre> 9110smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem 9111</pre> 9112 9113<p>This feature is available with Postfix version 2.2.</p> 9114 9115%PARAM smtpd_tls_dh512_param_file 9116 9117<p> File with DH parameters that the Postfix SMTP server should 9118use with EDH ciphers. </p> 9119 9120<p> See also the discussion under the smtpd_tls_dh1024_param_file 9121configuration parameter. </p> 9122 9123<p> Example: </p> 9124 9125<pre> 9126smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem 9127</pre> 9128 9129<p>This feature is available with Postfix version 2.2.</p> 9130 9131%PARAM smtpd_starttls_timeout see "postconf -d" output 9132 9133<p> The time limit for Postfix SMTP server write and read operations 9134during TLS startup and shutdown handshake procedures. The current 9135default value is stress-dependent. Before Postfix version 2.8, it 9136was fixed at 300s. </p> 9137 9138<p> This feature is available in Postfix 2.2 and later. </p> 9139 9140%PARAM smtp_tls_cert_file 9141 9142<p> File with the Postfix SMTP client RSA certificate in PEM format. 9143This file may also contain the Postfix SMTP client private RSA key, 9144and these may be the same as the Postfix SMTP server RSA certificate and key 9145file. </p> 9146 9147<p> Do not configure client certificates unless you <b>must</b> present 9148client TLS certificates to one or more servers. Client certificates are 9149not usually needed, and can cause problems in configurations that work 9150well without them. The recommended setting is to let the defaults stand: </p> 9151 9152<blockquote> 9153<pre> 9154smtp_tls_cert_file = 9155smtp_tls_key_file = 9156smtp_tls_dcert_file = 9157smtp_tls_dkey_file = 9158smtp_tls_eccert_file = 9159smtp_tls_eckey_file = 9160</pre> 9161</blockquote> 9162 9163<p> The best way to use the default settings is to comment out the above 9164parameters in main.cf if present. </p> 9165 9166<p> To enable remote SMTP servers to verify the Postfix SMTP client 9167certificate, the issuing CA certificates must be made available to the 9168server. You should include the required certificates in the client 9169certificate file, the client certificate first, then the issuing 9170CA(s) (bottom-up order). </p> 9171 9172<p> Example: the certificate for "client.example.com" was issued by 9173"intermediate CA" which itself has a certificate issued by "root CA". 9174Create the client.pem file with "cat client_cert.pem intermediate_CA.pem 9175root_CA.pem > client.pem". </p> 9176 9177<p> If you also want to verify remote SMTP server certificates issued by 9178these CAs, you can add the CA certificates to the smtp_tls_CAfile, in 9179which case it is not necessary to have them in the smtp_tls_cert_file, 9180smtp_tls_dcert_file or smtp_tls_eccert_file. </p> 9181 9182<p> A certificate supplied here must be usable as an SSL client certificate 9183and hence pass the "openssl verify -purpose sslclient ..." test. </p> 9184 9185<p> Example: </p> 9186 9187<pre> 9188smtp_tls_cert_file = /etc/postfix/client.pem 9189</pre> 9190 9191<p> This feature is available in Postfix 2.2 and later. </p> 9192 9193%PARAM smtp_tls_key_file $smtp_tls_cert_file 9194 9195<p> File with the Postfix SMTP client RSA private key in PEM format. 9196This file may be combined with the Postfix SMTP client RSA certificate 9197file specified with $smtp_tls_cert_file. </p> 9198 9199<p> The private key must be accessible without a pass-phrase, i.e. it 9200must not be encrypted. File permissions should grant read-only 9201access to the system superuser account ("root"), and no access 9202to anyone else. </p> 9203 9204<p> Example: </p> 9205 9206<pre> 9207smtp_tls_key_file = $smtp_tls_cert_file 9208</pre> 9209 9210<p> This feature is available in Postfix 2.2 and later. </p> 9211 9212%PARAM smtp_tls_CAfile 9213 9214<p> A file containing CA certificates of root CAs trusted to sign 9215either remote SMTP server certificates or intermediate CA certificates. 9216These are loaded into memory before the smtp(8) client enters the 9217chroot jail. If the number of trusted roots is large, consider using 9218smtp_tls_CApath instead, but note that the latter directory must be 9219present in the chroot jail if the smtp(8) client is chrooted. This 9220file may also be used to augment the client certificate trust chain, 9221but it is best to include all the required certificates directly in 9222$smtp_tls_cert_file. </p> 9223 9224<p> Specify "tls_append_default_CA = no" to prevent Postfix from 9225appending the system-supplied default CAs and trusting third-party 9226certificates. </p> 9227 9228<p> Example: </p> 9229 9230<pre> 9231smtp_tls_CAfile = /etc/postfix/CAcert.pem 9232</pre> 9233 9234<p> This feature is available in Postfix 2.2 and later. </p> 9235 9236%PARAM smtp_tls_CApath 9237 9238<p> Directory with PEM format certificate authority certificates 9239that the Postfix SMTP client uses to verify a remote SMTP server 9240certificate. Don't forget to create the necessary "hash" links 9241with, for example, "$OPENSSL_HOME/bin/c_rehash /etc/postfix/certs". 9242</p> 9243 9244<p> To use this option in chroot mode, this directory (or a copy) 9245must be inside the chroot jail. </p> 9246 9247<p> Specify "tls_append_default_CA = no" to prevent Postfix from 9248appending the system-supplied default CAs and trusting third-party 9249certificates. </p> 9250 9251<p> Example: </p> 9252 9253<pre> 9254smtp_tls_CApath = /etc/postfix/certs 9255</pre> 9256 9257<p> This feature is available in Postfix 2.2 and later. </p> 9258 9259%PARAM smtp_tls_loglevel 0 9260 9261<p> Enable additional Postfix SMTP client logging of TLS activity. 9262Each logging level also includes the information that is logged at 9263a lower logging level. </p> 9264 9265<dl compact> 9266 9267<dt> </dt> <dd> 0 Log only a summary message on TLS handshake completion 9268— no logging of remote SMTP server certificate trust-chain 9269verification errors if server certificate verification is not required. 9270With Postfix 2.8 and earlier, disable logging of TLS activity. </dd> 9271 9272<dt> </dt> <dd> 1 Also log remote SMTP server trust-chain verification 9273errors and peer certificate summary information. With Postfix 2.8 9274and earlier, log TLS handshake and certificate information. </dd> 9275 9276<dt> </dt> <dd> 2 Also log levels during TLS negotiation. </dd> 9277 9278<dt> </dt> <dd> 3 Also log hexadecimal and ASCII dump of TLS negotiation 9279process. </dd> 9280 9281<dt> </dt> <dd> 4 Also log hexadecimal and ASCII dump of complete 9282transmission after STARTTLS. </dd> 9283 9284</dl> 9285 9286<p> Do not use "smtp_tls_loglevel = 2" or higher except in case of 9287problems. Use of loglevel 4 is strongly discouraged. </p> 9288 9289<p> This feature is available in Postfix 2.2 and later. </p> 9290 9291%PARAM smtp_tls_session_cache_database 9292 9293<p> Name of the file containing the optional Postfix SMTP client 9294TLS session cache. Specify a database type that supports enumeration, 9295such as <b>btree</b> or <b>sdbm</b>; there is no need to support 9296concurrent access. The file is created if it does not exist. The smtp(8) 9297daemon does not use this parameter directly, rather the cache is 9298implemented indirectly in the tlsmgr(8) daemon. This means that 9299per-smtp-instance master.cf overrides of this parameter are not effective. 9300Note, that each of the cache databases supported by tlsmgr(8) daemon: 9301$smtpd_tls_session_cache_database, $smtp_tls_session_cache_database 9302(and with Postfix 2.3 and later $lmtp_tls_session_cache_database), needs to 9303be stored separately. It is not at this time possible to store multiple 9304caches in a single database. </p> 9305 9306<p> Note: <b>dbm</b> databases are not suitable. TLS 9307session objects are too large. </p> 9308 9309<p> As of version 2.5, Postfix no longer uses root privileges when 9310opening this file. The file should now be stored under the Postfix-owned 9311data_directory. As a migration aid, an attempt to open the file 9312under a non-Postfix directory is redirected to the Postfix-owned 9313data_directory, and a warning is logged. </p> 9314 9315<p> Example: </p> 9316 9317<pre> 9318smtp_tls_session_cache_database = btree:/var/db/postfix/smtp_scache 9319</pre> 9320 9321<p> This feature is available in Postfix 2.2 and later. </p> 9322 9323%PARAM smtp_tls_session_cache_timeout 3600s 9324 9325<p> The expiration time of Postfix SMTP client TLS session cache 9326information. A cache cleanup is performed periodically 9327every $smtp_tls_session_cache_timeout seconds. As with 9328$smtp_tls_session_cache_database, this parameter is implemented in the 9329tlsmgr(8) daemon and therefore per-smtp-instance master.cf overrides 9330are not possible. </p> 9331 9332<p> This feature is available in Postfix 2.2 and later. </p> 9333 9334%PARAM smtp_use_tls no 9335 9336<p> Opportunistic mode: use TLS when a remote SMTP server announces 9337STARTTLS support, otherwise send the mail in the clear. Beware: 9338some SMTP servers offer STARTTLS even if it is not configured. With 9339Postfix < 2.3, if the TLS handshake fails, and no other server is 9340available, delivery is deferred and mail stays in the queue. If this 9341is a concern for you, use the smtp_tls_per_site feature instead. </p> 9342 9343<p> This feature is available in Postfix 2.2 and later. With 9344Postfix 2.3 and later use smtp_tls_security_level instead. </p> 9345 9346%PARAM smtp_enforce_tls no 9347 9348<p> Enforcement mode: require that remote SMTP servers use TLS 9349encryption, and never send mail in the clear. This also requires 9350that the remote SMTP server hostname matches the information in 9351the remote server certificate, and that the remote SMTP server 9352certificate was issued by a CA that is trusted by the Postfix SMTP 9353client. If the certificate doesn't verify or the hostname doesn't 9354match, delivery is deferred and mail stays in the queue. </p> 9355 9356<p> The server hostname is matched against all names provided as 9357dNSNames in the SubjectAlternativeName. If no dNSNames are specified, 9358the CommonName is checked. The behavior may be changed with the 9359smtp_tls_enforce_peername option. </p> 9360 9361<p> This option is useful only if you are definitely sure that you 9362will only connect to servers that support RFC 2487 _and_ that 9363provide valid server certificates. Typical use is for clients that 9364send all their email to a dedicated mailhub. </p> 9365 9366<p> This feature is available in Postfix 2.2 and later. With 9367Postfix 2.3 and later use smtp_tls_security_level instead. </p> 9368 9369%PARAM smtp_tls_enforce_peername yes 9370 9371<p> With mandatory TLS encryption, require that the remote SMTP 9372server hostname matches the information in the remote SMTP server 9373certificate. As of RFC 2487 the requirements for hostname checking 9374for MTA clients are not specified. </p> 9375 9376<p> This option can be set to "no" to disable strict peer name 9377checking. This setting has no effect on sessions that are controlled 9378via the smtp_tls_per_site table. </p> 9379 9380<p> Disabling the hostname verification can make sense in closed 9381environment where special CAs are created. If not used carefully, 9382this option opens the danger of a "man-in-the-middle" attack (the 9383CommonName of this attacker will be logged). </p> 9384 9385<p> This feature is available in Postfix 2.2 and later. With 9386Postfix 2.3 and later use smtp_tls_security_level instead. </p> 9387 9388%PARAM smtp_tls_per_site 9389 9390<p> Optional lookup tables with the Postfix SMTP client TLS usage 9391policy by next-hop destination and by remote SMTP server hostname. 9392When both lookups succeed, the more specific per-site policy (NONE, 9393MUST, etc) overrides the less specific one (MAY), and the more secure 9394per-site policy (MUST, etc) overrides the less secure one (NONE). 9395With Postfix 2.3 and later smtp_tls_per_site is strongly discouraged: 9396use smtp_tls_policy_maps instead. </p> 9397 9398<p> Use of the bare hostname as the per-site table lookup key is 9399discouraged. Always use the full destination nexthop (enclosed in 9400[] with a possible ":port" suffix). A recipient domain or MX-enabled 9401transport next-hop with no port suffix may look like a bare hostname, 9402but is still a suitable <i>destination</i>. </p> 9403 9404<p> Specify a next-hop destination or server hostname on the left-hand 9405side; no wildcards are allowed. The next-hop destination is either 9406the recipient domain, or the destination specified with a transport(5) 9407table, the relayhost parameter, or the relay_transport parameter. 9408On the right hand side specify one of the following keywords: </p> 9409 9410<dl> 9411 9412<dt> NONE </dt> <dd> Don't use TLS at all. This overrides a less 9413specific <b>MAY</b> lookup result from the alternate host or next-hop 9414lookup key, and overrides the global smtp_use_tls, smtp_enforce_tls, 9415and smtp_tls_enforce_peername settings. </dd> 9416 9417<dt> MAY </dt> <dd> Try to use TLS if the server announces support, 9418otherwise use the unencrypted connection. This has less precedence 9419than a more specific result (including <b>NONE</b>) from the alternate 9420host or next-hop lookup key, and has less precedence than the more 9421specific global "smtp_enforce_tls = yes" or "smtp_tls_enforce_peername 9422= yes". </dd> 9423 9424<dt> MUST_NOPEERMATCH </dt> <dd> Require TLS encryption, but do not 9425require that the remote SMTP server hostname matches the information 9426in the remote SMTP server certificate, or that the server certificate 9427was issued by a trusted CA. This overrides a less secure <b>NONE</b> 9428or a less specific <b>MAY</b> lookup result from the alternate host 9429or next-hop lookup key, and overrides the global smtp_use_tls, 9430smtp_enforce_tls and smtp_tls_enforce_peername settings. </dd> 9431 9432<dt> MUST </dt> <dd> Require TLS encryption, require that the remote 9433SMTP server hostname matches the information in the remote SMTP 9434server certificate, and require that the remote SMTP server certificate 9435was issued by a trusted CA. This overrides a less secure <b>NONE</b> 9436and <b>MUST_NOPEERMATCH</b> or a less specific <b>MAY</b> lookup 9437result from the alternate host or next-hop lookup key, and overrides 9438the global smtp_use_tls, smtp_enforce_tls and smtp_tls_enforce_peername 9439settings. </dd> 9440 9441</dl> 9442 9443<p> The above keywords correspond to the "none", "may", "encrypt" and 9444"verify" security levels for the new smtp_tls_security_level parameter 9445introduced in Postfix 2.3. Starting with Postfix 2.3, and independently 9446of how the policy is specified, the smtp_tls_mandatory_ciphers and 9447smtp_tls_mandatory_protocols parameters apply when TLS encryption 9448is mandatory. Connections for which encryption is optional typically 9449enable all "export" grade and better ciphers (see smtp_tls_ciphers 9450and smtp_tls_protocols). </p> 9451 9452<p> As long as no secure DNS lookup mechanism is available, false 9453hostnames in MX or CNAME responses can change the server hostname 9454that Postfix uses for TLS policy lookup and server certificate 9455verification. Even with a perfect match between the server hostname and 9456the server certificate, there is no guarantee that Postfix is connected 9457to the right server. See TLS_README (Closing a DNS loophole with obsolete 9458per-site TLS policies) for a possible work-around. </p> 9459 9460<p> This feature is available in Postfix 2.2 and later. With 9461Postfix 2.3 and later use smtp_tls_policy_maps instead. </p> 9462 9463%PARAM smtp_tls_scert_verifydepth 9 9464 9465<p> The verification depth for remote SMTP server certificates. A depth 9466of 1 is sufficient if the issuing CA is listed in a local CA file. </p> 9467 9468<p> The default verification depth is 9 (the OpenSSL default) for 9469compatibility with earlier Postfix behavior. Prior to Postfix 2.5, 9470the default value was 5, but the limit was not actually enforced. If 9471you have set this to a lower non-default value, certificates with longer 9472trust chains may now fail to verify. Certificate chains with 1 or 2 9473CAs are common, deeper chains are more rare and any number between 5 9474and 9 should suffice in practice. You can choose a lower number if, 9475for example, you trust certificates directly signed by an issuing CA 9476but not any CAs it delegates to. </p> 9477 9478<p> This feature is available in Postfix 2.2 and later. </p> 9479 9480%PARAM smtp_tls_note_starttls_offer no 9481 9482<p> Log the hostname of a remote SMTP server that offers STARTTLS, 9483when TLS is not already enabled for that server. </p> 9484 9485<p> The logfile record looks like: </p> 9486 9487<pre> 9488postfix/smtp[pid]: Host offered STARTTLS: [name.of.host] 9489</pre> 9490 9491<p> This feature is available in Postfix 2.2 and later. </p> 9492 9493%PARAM smtp_tls_cipherlist 9494 9495<p> Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS 9496cipher list. As this feature applies to all TLS security levels, it is easy 9497to create inter-operability problems by choosing a non-default cipher 9498list. Do not use a non-default TLS cipher list on hosts that deliver email 9499to the public Internet: you will be unable to send email to servers that 9500only support the ciphers you exclude. Using a restricted cipher list 9501may be more appropriate for an internal MTA, where one can exert some 9502control over the TLS software and settings of the peer servers. </p> 9503 9504<p> <b>Note:</b> do not use "" quotes around the parameter value. </p> 9505 9506<p> This feature is available in Postfix version 2.2. It is not used with 9507Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead. </p> 9508 9509%PARAM smtp_starttls_timeout 300s 9510 9511<p> Time limit for Postfix SMTP client write and read operations 9512during TLS startup and shutdown handshake procedures. </p> 9513 9514<p> This feature is available in Postfix 2.2 and later. </p> 9515 9516%PARAM smtp_tls_dkey_file $smtp_tls_dcert_file 9517 9518<p> File with the Postfix SMTP client DSA private key in PEM format. 9519This file may be combined with the Postfix SMTP client DSA certificate 9520file specified with $smtp_tls_dcert_file. </p> 9521 9522<p> The private key must be accessible without a pass-phrase, i.e. it 9523must not be encrypted. File permissions should grant read-only 9524access to the system superuser account ("root"), and no access 9525to anyone else. </p> 9526 9527<p> This feature is available in Postfix 2.2 and later. </p> 9528 9529%PARAM smtp_tls_dcert_file 9530 9531<p> File with the Postfix SMTP client DSA certificate in PEM format. 9532This file may also contain the Postfix SMTP client private DSA key. </p> 9533 9534<p> See the discussion under smtp_tls_cert_file for more details. 9535</p> 9536 9537<p> Example: </p> 9538 9539<pre> 9540smtp_tls_dcert_file = /etc/postfix/client-dsa.pem 9541</pre> 9542 9543<p> This feature is available in Postfix 2.2 and later. </p> 9544 9545%PARAM tls_append_default_CA no 9546 9547<p> Append the system-supplied default certificate authority 9548certificates to the ones specified with *_tls_CApath or *_tls_CAfile. 9549The default is "no"; this prevents Postfix from trusting third-party 9550certificates and giving them relay permission with 9551permit_tls_all_clientcerts. </p> 9552 9553<p> This feature is available in Postfix 2.4.15, 2.5.11, 2.6.8, 95542.7.2 and later versions. Specify "tls_append_default_CA = yes" for 9555backwards compatibility, to avoid breaking certificate verification 9556with sites that don't use permit_tls_all_clientcerts. </p> 9557 9558%PARAM tls_random_exchange_name see "postconf -d" output 9559 9560<p> Name of the pseudo random number generator (PRNG) state file 9561that is maintained by tlsmgr(8). The file is created when it does 9562not exist, and its length is fixed at 1024 bytes. </p> 9563 9564<p> As of version 2.5, Postfix no longer uses root privileges when 9565opening this file, and the default file location was changed from 9566${config_directory}/prng_exch to ${data_directory}/prng_exch. As 9567a migration aid, an attempt to open the file under a non-Postfix 9568directory is redirected to the Postfix-owned data_directory, and a 9569warning is logged. </p> 9570 9571<p> This feature is available in Postfix 2.2 and later. </p> 9572 9573%PARAM tls_random_source see "postconf -d" output 9574 9575<p> The external entropy source for the in-memory tlsmgr(8) pseudo 9576random number generator (PRNG) pool. Be sure to specify a non-blocking 9577source. If this source is not a regular file, the entropy source 9578type must be prepended: egd:/path/to/egd_socket for a source with 9579EGD compatible socket interface, or dev:/path/to/device for a 9580device file. </p> 9581 9582<p> Note: on OpenBSD systems specify /dev/arandom when /dev/urandom 9583gives timeout errors. </p> 9584 9585<p> This feature is available in Postfix 2.2 and later. </p> 9586 9587%PARAM tls_random_bytes 32 9588 9589<p> The number of bytes that tlsmgr(8) reads from $tls_random_source 9590when (re)seeding the in-memory pseudo random number generator (PRNG) 9591pool. The default of 32 bytes (256 bits) is good enough for 128bit 9592symmetric keys. If using EGD or a device file, a maximum of 255 9593bytes is read. </p> 9594 9595<p> This feature is available in Postfix 2.2 and later. </p> 9596 9597%PARAM tls_random_reseed_period 3600s 9598 9599<p> The maximal time between attempts by tlsmgr(8) to re-seed the 9600in-memory pseudo random number generator (PRNG) pool from external 9601sources. The actual time between re-seeding attempts is calculated 9602using the PRNG, and is between 0 and the time specified. </p> 9603 9604<p> This feature is available in Postfix 2.2 and later. </p> 9605 9606%PARAM tls_random_prng_update_period 3600s 9607 9608<p> The time between attempts by tlsmgr(8) to save the state of 9609the pseudo random number generator (PRNG) to the file specified 9610with $tls_random_exchange_name. </p> 9611 9612<p> This feature is available in Postfix 2.2 and later. </p> 9613 9614%PARAM tls_daemon_random_bytes 32 9615 9616<p> The number of pseudo-random bytes that an smtp(8) or smtpd(8) 9617process requests from the tlsmgr(8) server in order to seed its 9618internal pseudo random number generator (PRNG). The default of 32 9619bytes (equivalent to 256 bits) is sufficient to generate a 128bit 9620(or 168bit) session key. </p> 9621 9622<p> This feature is available in Postfix 2.2 and later. </p> 9623 9624%PARAM smtp_sasl_tls_security_options $smtp_sasl_security_options 9625 9626<p> The SASL authentication security options that the Postfix SMTP 9627client uses for TLS encrypted SMTP sessions. </p> 9628 9629<p> This feature is available in Postfix 2.2 and later. </p> 9630 9631%PARAM smtpd_sasl_tls_security_options $smtpd_sasl_security_options 9632 9633<p> The SASL authentication security options that the Postfix SMTP 9634server uses for TLS encrypted SMTP sessions. </p> 9635 9636<p> This feature is available in Postfix 2.2 and later. </p> 9637 9638%PARAM smtp_generic_maps 9639 9640<p> Optional lookup tables that perform address rewriting in the 9641Postfix SMTP client, typically to transform a locally valid address into 9642a globally valid address when sending mail across the Internet. 9643This is needed when the local machine does not have its own Internet 9644domain name, but uses something like <i>localdomain.local</i> 9645instead. </p> 9646 9647<p> The table format and lookups are documented in generic(5); 9648examples are shown in the ADDRESS_REWRITING_README and 9649STANDARD_CONFIGURATION_README documents. </p> 9650 9651<p> This feature is available in Postfix 2.2 and later. </p> 9652 9653%PARAM message_reject_characters 9654 9655<p> The set of characters that Postfix will reject in message 9656content. The usual C-like escape sequences are recognized: <tt>\a 9657\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and 9658<tt>\\</tt>. </p> 9659 9660<p> Note 1: this feature does not recognize text that requires MIME 9661decoding. It inspects raw message content, just like header_checks 9662and body_checks. </p> 9663 9664<p> Note 2: this feature is disabled with "receive_override_options 9665= no_header_body_checks". </p> 9666 9667<p> Example: </p> 9668 9669<pre> 9670message_reject_characters = \0 9671</pre> 9672 9673<p> This feature is available in Postfix 2.3 and later. </p> 9674 9675%PARAM message_strip_characters 9676 9677<p> The set of characters that Postfix will remove from message 9678content. The usual C-like escape sequences are recognized: <tt>\a 9679\b \f \n \r \t \v \<i>ddd</i></tt> (up to three octal digits) and 9680<tt>\\</tt>. </p> 9681 9682<p> Note 1: this feature does not recognize text that requires MIME 9683decoding. It inspects raw message content, just like header_checks 9684and body_checks. </p> 9685 9686<p> Note 2: this feature is disabled with "receive_override_options 9687= no_header_body_checks". </p> 9688 9689<p> Example: </p> 9690 9691<pre> 9692message_strip_characters = \0 9693</pre> 9694 9695<p> This feature is available in Postfix 2.3 and later. </p> 9696 9697%PARAM frozen_delivered_to yes 9698 9699<p> Update the local(8) delivery agent's idea of the Delivered-To: 9700address (see prepend_delivered_header) only once, at the start of 9701a delivery attempt; do not update the Delivered-To: address while 9702expanding aliases or .forward files. </p> 9703 9704<p> This feature is available in Postfix 2.3 and later. With older 9705Postfix releases, the behavior is as if this parameter is set to 9706"no". The old setting can be expensive with deeply nested aliases 9707or .forward files. When an alias or .forward file changes the 9708Delivered-To: address, it ties up one queue file and one cleanup 9709process instance while mail is being forwarded. </p> 9710 9711%PARAM smtpd_peername_lookup yes 9712 9713<p> Attempt to look up the remote SMTP client hostname, and verify that 9714the name matches the client IP address. A client name is set to 9715"unknown" when it cannot be looked up or verified, or when name 9716lookup is disabled. Turning off name lookup reduces delays due to 9717DNS lookup and increases the maximal inbound delivery rate. </p> 9718 9719<p> This feature is available in Postfix 2.3 and later. </p> 9720 9721%PARAM delay_logging_resolution_limit 2 9722 9723<p> The maximal number of digits after the decimal point when logging 9724sub-second delay values. Specify a number in the range 0..6. </p> 9725 9726<p> Large delay values are rounded off to an integral number seconds; 9727delay values below the delay_logging_resolution_limit are logged 9728as "0", and small delay values are logged with at most two-digit 9729precision. </p> 9730 9731<p> The format of the "delays=a/b/c/d" logging is as follows: </p> 9732 9733<ul> 9734 9735<li> a = time from message arrival to last active queue entry 9736 9737<li> b = time from last active queue entry to connection setup 9738 9739<li> c = time in connection setup, including DNS, EHLO and STARTTLS 9740 9741<li> d = time in message transmission 9742 9743</ul> 9744 9745<p> This feature is available in Postfix 2.3 and later. </p> 9746 9747%PARAM bounce_template_file 9748 9749<p> Pathname of a configuration file with bounce message templates. 9750These override the built-in templates of delivery status notification 9751(DSN) messages for undeliverable mail, for delayed mail, successful 9752delivery, or delivery verification. The bounce(5) manual page 9753describes how to edit and test template files. </p> 9754 9755<p> Template message body text may contain $name references to 9756Postfix configuration parameters. The result of $name expansion can 9757be previewed with "<b>postconf -b <i>file_name</i></b>" before the file 9758is placed into the Postfix configuration directory. </p> 9759 9760<p> This feature is available in Postfix 2.3 and later. </p> 9761 9762%PARAM sender_dependent_relayhost_maps 9763 9764<p> A sender-dependent override for the global relayhost parameter 9765setting. The tables are searched by the envelope sender address and 9766@domain. A lookup result of DUNNO terminates the search without 9767overriding the global relayhost parameter setting (Postfix 2.6 and 9768later). This information is overruled with relay_transport, 9769sender_dependent_default_transport_maps, default_transport and with 9770the transport(5) table. </p> 9771 9772<p> For safety reasons, this feature does not allow $number 9773substitutions in regular expression maps. </p> 9774 9775<p> 9776This feature is available in Postfix 2.3 and later. 9777</p> 9778 9779%PARAM empty_address_relayhost_maps_lookup_key <> 9780 9781<p> The sender_dependent_relayhost_maps search string that will be 9782used instead of the null sender address. </p> 9783 9784<p> This feature is available in Postfix 2.5 and later. With 9785earlier versions, sender_dependent_relayhost_maps lookups were 9786skipped for the null sender address. </p> 9787 9788%PARAM address_verify_sender_dependent_relayhost_maps $sender_dependent_relayhost_maps 9789 9790<p> 9791Overrides the sender_dependent_relayhost_maps parameter setting for address 9792verification probes. 9793</p> 9794 9795<p> 9796This feature is available in Postfix 2.3 and later. 9797</p> 9798 9799%PARAM smtp_sender_dependent_authentication no 9800 9801<p> 9802Enable sender-dependent authentication in the Postfix SMTP client; this is 9803available only with SASL authentication, and disables SMTP connection 9804caching to ensure that mail from different senders will use the 9805appropriate credentials. </p> 9806 9807<p> 9808This feature is available in Postfix 2.3 and later. 9809</p> 9810 9811%PARAM lmtp_lhlo_name $myhostname 9812 9813<p> 9814The hostname to send in the LMTP LHLO command. 9815</p> 9816 9817<p> 9818The default value is the machine hostname. Specify a hostname or 9819[ip.add.re.ss]. 9820</p> 9821 9822<p> 9823This information can be specified in the main.cf file for all LMTP 9824clients, or it can be specified in the master.cf file for a specific 9825client, for example: 9826</p> 9827 9828<blockquote> 9829<pre> 9830/etc/postfix/master.cf: 9831 mylmtp ... lmtp -o lmtp_lhlo_name=foo.bar.com 9832</pre> 9833</blockquote> 9834 9835<p> 9836This feature is available in Postfix 2.3 and later. 9837</p> 9838 9839%PARAM lmtp_discard_lhlo_keyword_address_maps 9840 9841<p> Lookup tables, indexed by the remote LMTP server address, with 9842case insensitive lists of LHLO keywords (pipelining, starttls, 9843auth, etc.) that the Postfix LMTP client will ignore in the LHLO 9844response 9845from a remote LMTP server. See lmtp_discard_lhlo_keywords for 9846details. The table is not indexed by hostname for consistency with 9847smtpd_discard_ehlo_keyword_address_maps. </p> 9848 9849<p> This feature is available in Postfix 2.3 and later. </p> 9850 9851%PARAM lmtp_discard_lhlo_keywords 9852 9853<p> A case insensitive list of LHLO keywords (pipelining, starttls, 9854auth, etc.) that the Postfix LMTP client will ignore in the LHLO 9855response 9856from a remote LMTP server. </p> 9857 9858<p> This feature is available in Postfix 2.3 and later. </p> 9859 9860<p> Notes: </p> 9861 9862<ul> 9863 9864<li> <p> Specify the <b>silent-discard</b> pseudo keyword to prevent 9865this action from being logged. </p> 9866 9867<li> <p> Use the lmtp_discard_lhlo_keyword_address_maps feature to 9868discard LHLO keywords selectively. </p> 9869 9870</ul> 9871 9872%PARAM lmtp_lhlo_timeout 300s 9873 9874<p> The Postfix LMTP client time limit for sending the LHLO command, 9875and for receiving the initial remote LMTP server response. </p> 9876 9877<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 9878(weeks). The default time unit is s (seconds). </p> 9879 9880%PARAM lmtp_sasl_tls_security_options $lmtp_sasl_security_options 9881 9882<p> The LMTP-specific version of the smtp_sasl_tls_security_options 9883configuration parameter. See there for details. </p> 9884 9885<p> This feature is available in Postfix 2.3 and later. </p> 9886 9887%PARAM lmtp_sasl_mechanism_filter 9888 9889<p> The LMTP-specific version of the smtp_sasl_mechanism_filter 9890configuration parameter. See there for details. </p> 9891 9892<p> This feature is available in Postfix 2.3 and later. </p> 9893 9894%PARAM lmtp_bind_address 9895 9896<p> The LMTP-specific version of the smtp_bind_address configuration 9897parameter. See there for details. </p> 9898 9899<p> This feature is available in Postfix 2.3 and later. </p> 9900 9901%PARAM lmtp_bind_address6 9902 9903<p> The LMTP-specific version of the smtp_bind_address6 configuration 9904parameter. See there for details. </p> 9905 9906<p> This feature is available in Postfix 2.3 and later. </p> 9907 9908%PARAM lmtp_host_lookup dns 9909 9910<p> The LMTP-specific version of the smtp_host_lookup configuration 9911parameter. See there for details. </p> 9912 9913<p> This feature is available in Postfix 2.3 and later. </p> 9914 9915%PARAM lmtp_connection_cache_destinations 9916 9917<p> The LMTP-specific version of the smtp_connection_cache_destinations 9918configuration parameter. See there for details. </p> 9919 9920<p> This feature is available in Postfix 2.3 and later. </p> 9921 9922%PARAM lmtp_tls_per_site 9923 9924<p> The LMTP-specific version of the smtp_tls_per_site configuration 9925parameter. See there for details. </p> 9926 9927<p> This feature is available in Postfix 2.3 and later. </p> 9928 9929%PARAM lmtp_generic_maps 9930 9931<p> The LMTP-specific version of the smtp_generic_maps configuration 9932parameter. See there for details. </p> 9933 9934<p> This feature is available in Postfix 2.3 and later. </p> 9935 9936%PARAM lmtp_pix_workaround_threshold_time 500s 9937 9938<p> The LMTP-specific version of the smtp_pix_workaround_threshold_time 9939configuration parameter. See there for details. </p> 9940 9941<p> This feature is available in Postfix 2.3 and later. </p> 9942 9943%PARAM lmtp_pix_workaround_delay_time 10s 9944 9945<p> The LMTP-specific version of the smtp_pix_workaround_delay_time 9946configuration parameter. See there for details. </p> 9947 9948<p> This feature is available in Postfix 2.3 and later. </p> 9949 9950%PARAM lmtp_connection_reuse_time_limit 300s 9951 9952<p> The LMTP-specific version of the smtp_connection_reuse_time_limit 9953configuration parameter. See there for details. </p> 9954 9955<p> This feature is available in Postfix 2.3 and later. </p> 9956 9957%PARAM lmtp_starttls_timeout 300s 9958 9959<p> The LMTP-specific version of the smtp_starttls_timeout configuration 9960parameter. See there for details. </p> 9961 9962<p> This feature is available in Postfix 2.3 and later. </p> 9963 9964%PARAM lmtp_line_length_limit 990 9965 9966<p> The LMTP-specific version of the smtp_line_length_limit 9967configuration parameter. See there for details. </p> 9968 9969<p> This feature is available in Postfix 2.3 and later. </p> 9970 9971%PARAM lmtp_mx_address_limit 5 9972 9973<p> The LMTP-specific version of the smtp_mx_address_limit configuration 9974parameter. See there for details. </p> 9975 9976<p> This feature is available in Postfix 2.3 and later. </p> 9977 9978%PARAM lmtp_mx_session_limit 2 9979 9980<p> The LMTP-specific version of the smtp_mx_session_limit configuration 9981parameter. See there for details. </p> 9982 9983<p> This feature is available in Postfix 2.3 and later. </p> 9984 9985%PARAM lmtp_tls_scert_verifydepth 9 9986 9987<p> The LMTP-specific version of the smtp_tls_scert_verifydepth 9988configuration parameter. See there for details. </p> 9989 9990<p> This feature is available in Postfix 2.3 and later. </p> 9991 9992%PARAM lmtp_skip_5xx_greeting yes 9993 9994<p> The LMTP-specific version of the smtp_skip_5xx_greeting 9995configuration parameter. See there for details. </p> 9996 9997<p> This feature is available in Postfix 2.3 and later. </p> 9998 9999%PARAM lmtp_randomize_addresses yes 10000 10001<p> The LMTP-specific version of the smtp_randomize_addresses 10002configuration parameter. See there for details. </p> 10003 10004<p> This feature is available in Postfix 2.3 and later. </p> 10005 10006%PARAM lmtp_quote_rfc821_envelope yes 10007 10008<p> The LMTP-specific version of the smtp_quote_rfc821_envelope 10009configuration parameter. See there for details. </p> 10010 10011<p> This feature is available in Postfix 2.3 and later. </p> 10012 10013%PARAM lmtp_defer_if_no_mx_address_found no 10014 10015<p> The LMTP-specific version of the smtp_defer_if_no_mx_address_found 10016configuration parameter. See there for details. </p> 10017 10018<p> This feature is available in Postfix 2.3 and later. </p> 10019 10020%PARAM lmtp_connection_cache_on_demand yes 10021 10022<p> The LMTP-specific version of the smtp_connection_cache_on_demand 10023configuration parameter. See there for details. </p> 10024 10025<p> This feature is available in Postfix 2.3 and later. </p> 10026 10027%PARAM lmtp_use_tls no 10028 10029<p> The LMTP-specific version of the smtp_use_tls configuration 10030parameter. See there for details. </p> 10031 10032<p> This feature is available in Postfix 2.3 and later. </p> 10033 10034%PARAM lmtp_enforce_tls no 10035 10036<p> The LMTP-specific version of the smtp_enforce_tls configuration 10037parameter. See there for details. </p> 10038 10039<p> This feature is available in Postfix 2.3 and later. </p> 10040 10041%PARAM lmtp_tls_security_level 10042 10043<p> The LMTP-specific version of the smtp_tls_security_level configuration 10044parameter. See there for details. </p> 10045 10046<p> This feature is available in Postfix 2.3 and later. </p> 10047 10048%PARAM lmtp_tls_enforce_peername yes 10049 10050<p> The LMTP-specific version of the smtp_tls_enforce_peername 10051configuration parameter. See there for details. </p> 10052 10053<p> This feature is available in Postfix 2.3 and later. </p> 10054 10055%PARAM lmtp_tls_note_starttls_offer no 10056 10057<p> The LMTP-specific version of the smtp_tls_note_starttls_offer 10058configuration parameter. See there for details. </p> 10059 10060<p> This feature is available in Postfix 2.3 and later. </p> 10061 10062%PARAM lmtp_sender_dependent_authentication no 10063 10064<p> The LMTP-specific version of the smtp_sender_dependent_authentication 10065configuration parameter. See there for details. </p> 10066 10067<p> This feature is available in Postfix 2.3 and later. </p> 10068 10069%PARAM connection_cache_protocol_timeout 5s 10070 10071<p> Time limit for connection cache connect, send or receive 10072operations. The time limit is enforced in the client. </p> 10073 10074<p> This feature is available in Postfix 2.3 and later. </p> 10075 10076%PARAM smtpd_sasl_type cyrus 10077 10078<p> The SASL plug-in type that the Postfix SMTP server should use 10079for authentication. The available types are listed with the 10080"<b>postconf -a</b>" command. </p> 10081 10082<p> This feature is available in Postfix 2.3 and later. </p> 10083 10084%PARAM smtp_sasl_type cyrus 10085 10086<p> The SASL plug-in type that the Postfix SMTP client should use 10087for authentication. The available types are listed with the 10088"<b>postconf -A</b>" command. </p> 10089 10090<p> This feature is available in Postfix 2.3 and later. </p> 10091 10092 10093%PARAM lmtp_sasl_type cyrus 10094 10095<p> The SASL plug-in type that the Postfix LMTP client should use 10096for authentication. The available types are listed with the 10097"<b>postconf -A</b>" command. </p> 10098 10099<p> This feature is available in Postfix 2.3 and later. </p> 10100 10101%PARAM smtpd_sasl_path smtpd 10102 10103<p> Implementation-specific information that the Postfix SMTP server 10104passes through to 10105the SASL plug-in implementation that is selected with 10106<b>smtpd_sasl_type</b>. Typically this specifies the name of a 10107configuration file or rendezvous point. </p> 10108 10109<p> This feature is available in Postfix 2.3 and later. In earlier 10110releases it was called <b>smtpd_sasl_application_name</b>. </p> 10111 10112%PARAM cyrus_sasl_config_path 10113 10114<p> Search path for Cyrus SASL application configuration files, 10115currently used only to locate the $smtpd_sasl_path.conf file. 10116Specify zero or more directories separated by a colon character, 10117or an empty value to use Cyrus SASL's built-in search path. </p> 10118 10119<p> This feature is available in Postfix 2.5 and later when compiled 10120with Cyrus SASL 2.1.22 or later. </p> 10121 10122%PARAM smtp_sasl_path 10123 10124<p> Implementation-specific information that the Postfix SMTP client 10125passes through to 10126the SASL plug-in implementation that is selected with 10127<b>smtp_sasl_type</b>. Typically this specifies the name of a 10128configuration file or rendezvous point. </p> 10129 10130<p> This feature is available in Postfix 2.3 and later. </p> 10131 10132%PARAM lmtp_sasl_path 10133 10134<p> Implementation-specific information that is passed through to 10135the SASL plug-in implementation that is selected with 10136<b>lmtp_sasl_type</b>. Typically this specifies the name of a 10137configuration file or rendezvous point. </p> 10138 10139<p> This feature is available in Postfix 2.3 and later. </p> 10140 10141%PARAM plaintext_reject_code 450 10142 10143<p> 10144The numerical Postfix SMTP server response code when a request 10145is rejected by the <b>reject_plaintext_session</b> restriction. 10146</p> 10147 10148<p> This feature is available in Postfix 2.3 and later. </p> 10149 10150%PARAM resolve_numeric_domain no 10151 10152<p> Resolve "user@ipaddress" as "user@[ipaddress]", instead of 10153rejecting the address as invalid. </p> 10154 10155<p> This feature is available in Postfix 2.3 and later. 10156 10157%PARAM mailbox_transport_maps 10158 10159<p> Optional lookup tables with per-recipient message delivery 10160transports to use for local(8) mailbox delivery, whether or not the 10161recipients are found in the UNIX passwd database. </p> 10162 10163<p> The precedence of local(8) delivery features from high to low 10164is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 10165mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 10166fallback_transport_maps, fallback_transport and luser_relay. </p> 10167 10168<p> For safety reasons, this feature does not allow $number 10169substitutions in regular expression maps. </p> 10170 10171<p> This feature is available in Postfix 2.3 and later. </p> 10172 10173%PARAM fallback_transport_maps 10174 10175<p> Optional lookup tables with per-recipient message delivery 10176transports for recipients that the local(8) delivery agent could 10177not find in the aliases(5) or UNIX password database. </p> 10178 10179<p> The precedence of local(8) delivery features from high to low 10180is: aliases, .forward files, mailbox_transport_maps, mailbox_transport, 10181mailbox_command_maps, mailbox_command, home_mailbox, mail_spool_directory, 10182fallback_transport_maps, fallback_transport and luser_relay. </p> 10183 10184<p> For safety reasons, this feature does not allow $number 10185substitutions in regular expression maps. </p> 10186 10187<p> This feature is available in Postfix 2.3 and later. </p> 10188 10189%PARAM smtp_cname_overrides_servername version dependent 10190 10191<p> Allow DNS CNAME records to override the servername that the 10192Postfix SMTP client uses for logging, SASL password lookup, TLS 10193policy decisions, or TLS certificate verification. The value "no" 10194hardens Postfix smtp_tls_per_site hostname-based policies against 10195false hostname information in DNS CNAME records, and makes SASL 10196password file lookups more predictable. This is the default setting 10197as of Postfix 2.3. </p> 10198 10199<p> This feature is available in Postfix 2.2.9 and later. </p> 10200 10201%PARAM lmtp_cname_overrides_servername yes 10202 10203<p> The LMTP-specific version of the smtp_cname_overrides_servername 10204configuration parameter. See there for details. </p> 10205 10206<p> This feature is available in Postfix 2.3 and later. </p> 10207 10208%PARAM smtp_sasl_tls_verified_security_options $smtp_sasl_tls_security_options 10209 10210<p> The SASL authentication security options that the Postfix SMTP 10211client uses for TLS encrypted SMTP sessions with a verified server 10212certificate. </p> 10213 10214<p> When mail is sent to the public MX host for the recipient's 10215domain, server certificates are by default optional, and delivery 10216proceeds even if certificate verification fails. For delivery via 10217a submission service that requires SASL authentication, it may be 10218appropriate to send plaintext passwords only when the connection 10219to the server is strongly encrypted <b>and</b> the server identity 10220is verified. </p> 10221 10222<p> The smtp_sasl_tls_verified_security_options parameter makes it 10223possible to only enable plaintext mechanisms when a secure connection 10224to the server is available. Submission servers subject to this 10225policy must either have verifiable certificates or offer suitable 10226non-plaintext SASL mechanisms. </p> 10227 10228<p> This feature is available in Postfix 2.6 and later. </p> 10229 10230%PARAM lmtp_sasl_tls_verified_security_options $lmtp_sasl_tls_security_options 10231 10232<p> The LMTP-specific version of the 10233smtp_sasl_tls_verified_security_options configuration parameter. 10234See there for details. </p> 10235 10236<p> This feature is available in Postfix 2.3 and later. </p> 10237 10238%PARAM lmtp_connection_cache_time_limit 2s 10239 10240<p> The LMTP-specific version of the 10241smtp_connection_cache_time_limit configuration parameter. 10242See there for details. </p> 10243 10244<p> This feature is available in Postfix 2.3 and later. </p> 10245 10246%PARAM smtpd_delay_open_until_valid_rcpt yes 10247 10248<p> Postpone the start of an SMTP mail transaction until a valid 10249RCPT TO command is received. Specify "no" to create a mail transaction 10250as soon as the Postfix SMTP server receives a valid MAIL FROM 10251command. </p> 10252 10253<p> With sites that reject lots of mail, the default setting reduces 10254the use of 10255disk, CPU and memory resources. The downside is that rejected 10256recipients are logged with NOQUEUE instead of a mail transaction 10257ID. This complicates the logfile analysis of multi-recipient mail. 10258</p> 10259 10260<p> This feature is available in Postfix 2.3 and later. </p> 10261 10262%PARAM lmtp_tls_cert_file 10263 10264<p> The LMTP-specific version of the smtp_tls_cert_file 10265configuration parameter. See there for details. </p> 10266 10267<p> This feature is available in Postfix 2.3 and later. </p> 10268 10269%PARAM lmtp_tls_key_file $lmtp_tls_cert_file 10270 10271<p> The LMTP-specific version of the smtp_tls_key_file 10272configuration parameter. See there for details. </p> 10273 10274<p> This feature is available in Postfix 2.3 and later. </p> 10275 10276%PARAM lmtp_tls_dcert_file 10277 10278<p> The LMTP-specific version of the smtp_tls_dcert_file 10279configuration parameter. See there for details. </p> 10280 10281<p> This feature is available in Postfix 2.3 and later. </p> 10282 10283%PARAM lmtp_tls_dkey_file $lmtp_tls_dcert_file 10284 10285<p> The LMTP-specific version of the smtp_tls_dkey_file 10286configuration parameter. See there for details. </p> 10287 10288<p> This feature is available in Postfix 2.3 and later. </p> 10289 10290%PARAM lmtp_tls_CAfile 10291 10292<p> The LMTP-specific version of the smtp_tls_CAfile 10293configuration parameter. See there for details. </p> 10294 10295<p> This feature is available in Postfix 2.3 and later. </p> 10296 10297%PARAM lmtp_tls_CApath 10298 10299<p> The LMTP-specific version of the smtp_tls_CApath 10300configuration parameter. See there for details. </p> 10301 10302<p> This feature is available in Postfix 2.3 and later. </p> 10303 10304%PARAM lmtp_tls_loglevel 0 10305 10306<p> The LMTP-specific version of the smtp_tls_loglevel 10307configuration parameter. See there for details. </p> 10308 10309<p> This feature is available in Postfix 2.3 and later. </p> 10310 10311%PARAM lmtp_tls_session_cache_database 10312 10313<p> The LMTP-specific version of the smtp_tls_session_cache_database 10314configuration parameter. See there for details. </p> 10315 10316<p> This feature is available in Postfix 2.3 and later. </p> 10317 10318%PARAM lmtp_tls_session_cache_timeout 3600s 10319 10320<p> The LMTP-specific version of the smtp_tls_session_cache_timeout 10321configuration parameter. See there for details. </p> 10322 10323<p> This feature is available in Postfix 2.3 and later. </p> 10324 10325%PARAM smtp_tls_policy_maps 10326 10327<p> Optional lookup tables with the Postfix SMTP client TLS security 10328policy by next-hop destination; when a non-empty value is specified, 10329this overrides the obsolete smtp_tls_per_site parameter. See 10330TLS_README for a more detailed discussion of TLS security levels. 10331</p> 10332 10333<p> The TLS policy table is indexed by the full next-hop destination, 10334which is either the recipient domain, or the verbatim next-hop 10335specified in the transport table, $local_transport, $virtual_transport, 10336$relay_transport or $default_transport. This includes any enclosing 10337square brackets and any non-default destination server port suffix. The 10338LMTP socket type prefix (inet: or unix:) is not included in the lookup 10339key. </p> 10340 10341<p> Only the next-hop domain, or $myhostname with LMTP over UNIX-domain 10342sockets, is used as the nexthop name for certificate verification. The 10343port and any enclosing square brackets are used in the table lookup key, 10344but are not used for server name verification. </p> 10345 10346<p> When the lookup key is a domain name without enclosing square brackets 10347or any <i>:port</i> suffix (typically the recipient domain), and the full 10348domain is not found in the table, just as with the transport(5) table, 10349the parent domain starting with a leading "." is matched recursively. This 10350allows one to specify a security policy for a recipient domain and all 10351its sub-domains. </p> 10352 10353<p> The lookup result is a security level, followed by an optional list 10354of whitespace and/or comma separated name=value attributes that override 10355related main.cf settings. The TLS security levels in order of increasing 10356security are: </p> 10357 10358<dl> 10359 10360<dt><b>none</b></dt> 10361<dd>No TLS. No additional attributes are supported at this level. </dd> 10362 10363<dt><b>may</b></dt> 10364<dd>Opportunistic TLS. Since sending in the clear is acceptable, 10365demanding stronger than default TLS security merely reduces 10366inter-operability. The optional "ciphers", "exclude" and "protocols" 10367attributes (available for opportunistic TLS with Postfix ≥ 2.6) 10368override the "smtp_tls_ciphers", "smtp_tls_exclude_ciphers" and 10369"smtp_tls_protocols" configuration parameters. When opportunistic TLS 10370handshakes fail, Postfix retries the connection with TLS disabled. 10371This allows mail delivery to sites with non-interoperable TLS 10372implementations.</dd> 10373 10374<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. At this level 10375and higher, the optional "protocols" attribute overrides the main.cf 10376smtp_tls_mandatory_protocols parameter, the optional "ciphers" attribute 10377overrides the main.cf smtp_tls_mandatory_ciphers parameter, and the 10378optional "exclude" attribute (Postfix ≥ 2.6) overrides the main.cf 10379smtp_tls_mandatory_exclude_ciphers parameter. In the policy table, 10380multiple protocols or excluded ciphers must be separated by colons, 10381as attribute values may not contain whitespace or commas. </dd> 10382 10383<dt><b>fingerprint</b></dt> <dd>Certificate fingerprint 10384verification. Available with Postfix 2.5 and later. At this security 10385level, there are no trusted certificate authorities. The certificate 10386trust chain, expiration date, ... are not checked. Instead, 10387the optional <b>match</b> attribute, or else the main.cf 10388<b>smtp_tls_fingerprint_cert_match</b> parameter, lists the certificate 10389fingerprints or the public key fingerprint (Postfix 2.9 and later) 10390of the valid server certificate. The digest 10391algorithm used to calculate the fingerprint is selected by the 10392<b>smtp_tls_fingerprint_digest</b> parameter. Multiple fingerprints can 10393be combined with a "|" delimiter in a single match attribute, or multiple 10394match attributes can be employed. The ":" character is not used as a 10395delimiter as it occurs between each pair of fingerprint (hexadecimal) 10396digits. </dd> 10397 10398<dt><b>verify</b></dt> <dd>Mandatory TLS verification. At this security 10399level, DNS MX lookups are trusted to be secure enough, and the name 10400verified in the server certificate is usually obtained indirectly via 10401unauthenticated DNS MX lookups. The optional "match" attribute overrides 10402the main.cf smtp_tls_verify_cert_match parameter. In the policy table, 10403multiple match patterns and strategies must be separated by colons. 10404In practice explicit control over matching is more common with the 10405"secure" policy, described below. </dd> 10406 10407<dt><b>secure</b></dt> <dd>Secure-channel TLS. At this security level, DNS 10408MX lookups, though potentially used to determine the candidate next-hop 10409gateway IP addresses, are <b>not</b> trusted to be secure enough for TLS 10410peername verification. Instead, the default name verified in the server 10411certificate is obtained directly from the next-hop, or is explicitly 10412specified via the optional <b>match</b> attribute which overrides the 10413main.cf smtp_tls_secure_cert_match parameter. In the policy table, 10414multiple match patterns and strategies must be separated by colons. 10415The match attribute is most useful when multiple domains are supported by 10416common server, the policy entries for additional domains specify matching 10417rules for the primary domain certificate. While transport table overrides 10418routing the secondary domains to the primary nexthop also allow secure 10419verification, they risk delivery to the wrong destination when domains 10420change hands or are re-assigned to new gateways. With the "match" 10421attribute approach, routing is not perturbed, and mail is deferred if 10422verification of a new MX host fails. </dd> 10423 10424</dl> 10425 10426<p> 10427Example: 10428</p> 10429 10430<pre> 10431/etc/postfix/main.cf: 10432 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy 10433 # Postfix 2.5 and later 10434 smtp_tls_fingerprint_digest = md5 10435</pre> 10436 10437<pre> 10438/etc/postfix/tls_policy: 10439 example.edu none 10440 example.mil may 10441 example.gov encrypt protocols=TLSv1 10442 example.com verify ciphers=high 10443 example.net secure 10444 .example.net secure match=.example.net:example.net 10445 [mail.example.org]:587 secure match=nexthop 10446 # Postfix 2.5 and later 10447 [thumb.example.org] fingerprint 10448 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35 10449 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1 10450</pre> 10451 10452<p> <b>Note:</b> The <b>hostname</b> strategy if listed in a non-default 10453setting of smtp_tls_secure_cert_match or in the <b>match</b> attribute 10454in the policy table can render the <b>secure</b> level vulnerable to 10455DNS forgery. Do not use the <b>hostname</b> strategy for secure-channel 10456configurations in environments where DNS security is not assured. </p> 10457 10458<p> This feature is available in Postfix 2.3 and later. </p> 10459 10460%PARAM smtp_tls_mandatory_protocols !SSLv2 10461 10462<p> List of SSL/TLS protocols that the Postfix SMTP client will use with 10463mandatory TLS encryption. In main.cf the values are separated by 10464whitespace, commas or colons. In the policy table "protocols" attribute 10465(see smtp_tls_policy_maps) the only valid separator is colon. An 10466empty value means allow all protocols. The valid protocol names, (see 10467<b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and "TLSv1". </p> 10468 10469<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1" 10470and "TLSv1.2". If an older Postfix version is linked against OpenSSL 104711.0.1 or later, these, or any other new protocol versions, are 10472unconditionally enabled. </p> 10473 10474<p> With Postfix ≥ 2.5 the parameter syntax is expanded to support 10475protocol exclusions. One can now explicitly exclude SSLv2 by setting 10476"smtp_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and 10477SSLv3 set "smtp_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing 10478the protocols to include, rather than protocols to exclude, is 10479supported, but not recommended. The exclusion form more closely 10480matches the behaviour when the OpenSSL library is newer than Postfix. 10481</p> 10482 10483<p> Since SSL version 2 has known protocol weaknesses and is now 10484deprecated, the default setting excludes "SSLv2". This means that by 10485default, SSL version 2 will not be used at the "encrypt" security level 10486and higher. </p> 10487 10488<p> See the documentation of the smtp_tls_policy_maps parameter and 10489TLS_README for more information about security levels. </p> 10490 10491<p> Example: </p> 10492 10493<pre> 10494# Preferred form with Postfix ≥ 2.5: 10495smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 10496# Alternative form. 10497smtp_tls_mandatory_protocols = TLSv1 10498</pre> 10499 10500<p> This feature is available in Postfix 2.3 and later. </p> 10501 10502%PARAM smtp_tls_verify_cert_match hostname 10503 10504<p> How the Postfix SMTP client verifies the server certificate 10505peername for the 10506"verify" TLS security level. In a "verify" TLS policy table 10507($smtp_tls_policy_maps) entry the optional "match" attribute 10508overrides this main.cf setting. </p> 10509 10510<p> This parameter specifies one or more patterns or strategies separated 10511by commas, whitespace or colons. In the policy table the only valid 10512separator is the colon character. </p> 10513 10514<p> Patterns specify domain names, or domain name suffixes: </p> 10515 10516<dl> 10517 10518<dt><i>example.com</i></dt> <dd> Match the <i>example.com</i> domain, 10519i.e. one of the names the server certificate must be <i>example.com</i>, 10520upper and lower case distinctions are ignored. </dd> 10521 10522<dt><i>.example.com</i></dt> 10523<dd> Match subdomains of the <i>example.com</i> domain, i.e. match 10524a name in the server certificate that consists of a non-zero number of 10525labels followed by a <i>.example.com</i> suffix. Case distinctions are 10526ignored.</dd> 10527 10528</dl> 10529 10530<p> Strategies specify a transformation from the next-hop domain 10531to the expected name in the server certificate: </p> 10532 10533<dl> 10534 10535<dt>nexthop</dt> 10536<dd> Match against the next-hop domain, which is either the recipient 10537domain, or the transport next-hop configured for the domain stripped of 10538any optional socket type prefix, enclosing square brackets and trailing 10539port. When MX lookups are not suppressed, this is the original nexthop 10540domain prior to the MX lookup, not the result of the MX lookup. For 10541LMTP delivery via UNIX-domain sockets, the verified next-hop name is 10542$myhostname. This strategy is suitable for use with the "secure" 10543policy. Case is ignored.</dd> 10544 10545<dt>dot-nexthop</dt> 10546<dd> As above, but match server certificate names that are subdomains 10547of the next-hop domain. Case is ignored.</dd> 10548 10549<dt>hostname</dt> <dd> Match against the hostname of the server, often 10550obtained via an unauthenticated DNS MX lookup. For LMTP delivery via 10551UNIX-domain sockets, the verified name is $myhostname. This matches 10552the verification strategy of the "MUST" keyword in the obsolete 10553smtp_tls_per_site table, and is suitable for use with the "verify" 10554security level. When the next-hop name is enclosed in square brackets 10555to suppress MX lookups, the "hostname" strategy is the same as the 10556"nexthop" strategy. Case is ignored.</dd> 10557 10558</dl> 10559 10560<p> 10561Sample main.cf setting: 10562</p> 10563 10564<pre> 10565smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop 10566</pre> 10567 10568<p> 10569Sample policy table override: 10570</p> 10571 10572<pre> 10573example.com verify match=hostname:nexthop 10574.example.com verify match=example.com:.example.com:hostname 10575</pre> 10576 10577<p> This feature is available in Postfix 2.3 and later. </p> 10578 10579%PARAM smtp_tls_secure_cert_match nexthop, dot-nexthop 10580 10581<p> How the Postfix SMTP client verifies the server certificate 10582peername for the 10583"secure" TLS security level. In a "secure" TLS policy table 10584($smtp_tls_policy_maps) entry the optional "match" attribute 10585overrides this main.cf setting. </p> 10586 10587<p> This parameter specifies one or more patterns or strategies separated 10588by commas, whitespace or colons. In the policy table the only valid 10589separator is the colon character. </p> 10590 10591<p> For a description of the pattern and strategy syntax see the 10592smtp_tls_verify_cert_match parameter. The "hostname" strategy should 10593be avoided in this context, as in the absence of a secure global DNS, using 10594the results of MX lookups in certificate verification is not immune to active 10595(man-in-the-middle) attacks on DNS. </p> 10596 10597<p> 10598Sample main.cf setting: 10599</p> 10600 10601<blockquote> 10602<pre> 10603smtp_tls_secure_cert_match = nexthop 10604</pre> 10605</blockquote> 10606 10607<p> 10608Sample policy table override: 10609</p> 10610 10611<blockquote> 10612<pre> 10613example.net secure match=example.com:.example.com 10614.example.net secure match=example.com:.example.com 10615</pre> 10616</blockquote> 10617 10618<p> This feature is available in Postfix 2.3 and later. </p> 10619 10620%PARAM lmtp_tls_policy_maps 10621 10622<p> The LMTP-specific version of the smtp_tls_policy_maps 10623configuration parameter. See there for details. </p> 10624 10625<p> This feature is available in Postfix 2.3 and later. </p> 10626 10627%PARAM lmtp_tls_mandatory_protocols !SSLv2 10628 10629<p> The LMTP-specific version of the smtp_tls_mandatory_protocols 10630configuration parameter. See there for details. </p> 10631 10632<p> This feature is available in Postfix 2.3 and later. </p> 10633 10634%PARAM lmtp_tls_verify_cert_match hostname 10635 10636<p> The LMTP-specific version of the smtp_tls_verify_cert_match 10637configuration parameter. See there for details. </p> 10638 10639<p> This feature is available in Postfix 2.3 and later. </p> 10640 10641%PARAM lmtp_tls_secure_cert_match nexthop 10642 10643<p> The LMTP-specific version of the smtp_tls_secure_cert_match 10644configuration parameter. See there for details. </p> 10645 10646<p> This feature is available in Postfix 2.3 and later. </p> 10647 10648%PARAM smtpd_tls_mandatory_protocols !SSLv2 10649 10650<p> The SSL/TLS protocols accepted by the Postfix SMTP server with 10651mandatory TLS encryption. If the list is empty, the server supports all 10652available SSL/TLS protocol versions. A non-empty value is a list 10653of protocol 10654names separated by whitespace, commas or colons. The supported protocol 10655names are "SSLv2", "SSLv3" and "TLSv1", and are not case sensitive. </p> 10656 10657<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1" 10658and "TLSv1.2". If an older Postfix version is linked against OpenSSL 106591.0.1 or later, these, or any other new protocol versions, are 10660unconditionally enabled. </p> 10661 10662<p> With Postfix ≥ 2.5 the parameter syntax is expanded to support 10663protocol exclusions. One can now explicitly exclude SSLv2 by setting 10664"smtpd_tls_mandatory_protocols = !SSLv2". To exclude both SSLv2 and 10665SSLv3 set "smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3". Listing 10666the protocols to include, rather than protocols to exclude, is 10667supported, but not recommended. The exclusion form more closely 10668matches the behaviour when the OpenSSL library is newer than Postfix. 10669</p> 10670 10671<p> Since SSL version 2 has known protocol weaknesses and is now 10672deprecated, the default setting excludes "SSLv2". This means that 10673by default, SSL version 2 will not be used at the "encrypt" security 10674level. </p> 10675 10676<p> Example: </p> 10677 10678<pre> 10679smtpd_tls_mandatory_protocols = TLSv1 10680# Alternative form with Postfix ≥ 2.5: 10681smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 10682</pre> 10683 10684<p> This feature is available in Postfix 2.3 and later. </p> 10685 10686%PARAM smtp_tls_security_level 10687 10688<p> The default SMTP TLS security level for the Postfix SMTP client; 10689when a non-empty value is specified, this overrides the obsolete 10690parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername. 10691</p> 10692 10693<p> Specify one of the following security levels: </p> 10694 10695<dl> 10696 10697<dt><b>none</b></dt> <dd> TLS will not be used unless enabled for specific 10698destinations via smtp_tls_policy_maps. </dd> 10699 10700<dt><b>may</b></dt> 10701<dd> Opportunistic TLS. Use TLS if this is supported by the remote 10702SMTP server, otherwise use plaintext. Since 10703sending in the clear is acceptable, demanding stronger than default TLS 10704security merely reduces inter-operability. 10705The "smtp_tls_ciphers" and "smtp_tls_protocols" (Postfix ≥ 2.6) 10706configuration parameters provide control over the protocols and 10707cipher grade used with opportunistic TLS. With earlier releases the 10708opportunistic TLS cipher grade is always "export" and no protocols 10709are disabled. 10710When TLS handshakes fail, the connection is retried with TLS disabled. 10711This allows mail delivery to sites with non-interoperable TLS 10712implementations. </dd> 10713 10714<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption. Since a minimum 10715level of security is intended, it is reasonable to be specific about 10716sufficiently secure protocol versions and ciphers. At this security level 10717and higher, the main.cf parameters smtp_tls_mandatory_protocols and 10718smtp_tls_mandatory_ciphers specify the TLS protocols and minimum 10719cipher grade which the administrator considers secure enough for 10720mandatory encrypted sessions. This security level is not an appropriate 10721default for systems delivering mail to the Internet. </dd> 10722 10723<dt><b>fingerprint</b></dt> <dd>Certificate fingerprint 10724verification. Available with Postfix 2.5 and later. At this security 10725level, there are no trusted certificate authorities. The certificate 10726trust chain, expiration date, ... are not checked. Instead, the 10727<b>smtp_tls_fingerprint_cert_match</b> parameter lists the certificate 10728fingerprint or public key fingerprint (Postfix 2.9 and later) of 10729the valid server certificate. The digest 10730algorithm used to calculate the fingerprint is selected by the 10731<b>smtp_tls_fingerprint_digest</b> parameter. </dd> 10732 10733<dt><b>verify</b></dt> <dd>Mandatory TLS verification. At this security 10734level, DNS MX lookups are trusted to be secure enough, and the name 10735verified in the server certificate is usually obtained indirectly 10736via unauthenticated DNS MX lookups. The smtp_tls_verify_cert_match 10737parameter controls how the server name is verified. In practice explicit 10738control over matching is more common at the "secure" level, described 10739below. This security level is not an appropriate default for systems 10740delivering mail to the Internet. </dd> 10741 10742<dt><b>secure</b></dt> <dd>Secure-channel TLS. At this security level, 10743DNS MX lookups, though potentially used to determine the candidate 10744next-hop gateway IP addresses, are <b>not</b> trusted to be secure enough 10745for TLS peername verification. Instead, the default name verified in 10746the server certificate is obtained from the next-hop domain as specified 10747in the smtp_tls_secure_cert_match configuration parameter. The default 10748matching rule is that a server certificate matches when its name is equal 10749to or is a sub-domain of the nexthop domain. This security level is not 10750an appropriate default for systems delivering mail to the Internet. </dd> 10751 10752</dl> 10753 10754<p> 10755Examples: 10756</p> 10757 10758<pre> 10759# No TLS. Formerly: smtp_use_tls=no and smtp_enforce_tls=no. 10760smtp_tls_security_level = none 10761</pre> 10762 10763<pre> 10764# Opportunistic TLS. 10765smtp_tls_security_level = may 10766# Postfix ≥ 2.6: 10767# Do not tweak opportunistic ciphers or protocol unless it is essential 10768# to do so (if a security vulnerability is found in the SSL library that 10769# can be mitigated by disabling a particular protocol or raising the 10770# cipher grade from "export" to "low" or "medium"). 10771smtp_tls_ciphers = export 10772smtp_tls_protocols = !SSLv2 10773</pre> 10774 10775<pre> 10776# Mandatory (high-grade) TLS encryption. 10777smtp_tls_security_level = encrypt 10778smtp_tls_mandatory_ciphers = high 10779</pre> 10780 10781<pre> 10782# Mandatory TLS verification of hostname or nexthop domain. 10783smtp_tls_security_level = verify 10784smtp_tls_mandatory_ciphers = high 10785smtp_tls_verify_cert_match = hostname, nexthop, dot-nexthop 10786</pre> 10787 10788<pre> 10789# Secure channel TLS with exact nexthop name match. 10790smtp_tls_security_level = secure 10791smtp_tls_mandatory_protocols = TLSv1 10792smtp_tls_mandatory_ciphers = high 10793smtp_tls_secure_cert_match = nexthop 10794</pre> 10795 10796<pre> 10797# Certificate fingerprint verification (Postfix ≥ 2.5). 10798# The CA-less "fingerprint" security level only scales to a limited 10799# number of destinations. As a global default rather than a per-site 10800# setting, this is practical when mail for all recipients is sent 10801# to a central mail hub. 10802relayhost = [mailhub.example.com] 10803smtp_tls_security_level = fingerprint 10804smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 10805smtp_tls_mandatory_ciphers = high 10806smtp_tls_fingerprint_cert_match = 10807 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1 10808 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35 10809</pre> 10810 10811<p> This feature is available in Postfix 2.3 and later. </p> 10812 10813%PARAM smtpd_milters 10814 10815<p> A list of Milter (mail filter) applications for new mail that 10816arrives via the Postfix smtpd(8) server. Specify space or comma as 10817separator. See the MILTER_README document for details. </p> 10818 10819<p> This feature is available in Postfix 2.3 and later. </p> 10820 10821%PARAM non_smtpd_milters 10822 10823<p> A list of Milter (mail filter) applications for new mail that 10824does not arrive via the Postfix smtpd(8) server. This includes local 10825submission via the sendmail(1) command line, new mail that arrives 10826via the Postfix qmqpd(8) server, and old mail that is re-injected 10827into the queue with "postsuper -r". Specify space or comma as 10828separator. See the MILTER_README document for details. </p> 10829 10830<p> This feature is available in Postfix 2.3 and later. </p> 10831 10832%PARAM milter_protocol 6 10833 10834<p> The mail filter protocol version and optional protocol extensions 10835for communication with a Milter application; prior to Postfix 2.6 10836the default protocol is 2. Postfix 10837sends this version number during the initial protocol handshake. 10838It should match the version number that is expected by the mail 10839filter application (or by its Milter library). </p> 10840 10841<p>Protocol versions: </p> 10842 10843<dl compact> 10844 10845<dt>2</dt> <dd>Use Sendmail 8 mail filter protocol version 2 (default 10846with Sendmail version 8.11 .. 8.13 and Postfix version 2.3 .. 108472.5).</dd> 10848 10849<dt>3</dt> <dd>Use Sendmail 8 mail filter protocol version 3.</dd> 10850 10851<dt>4</dt> <dd>Use Sendmail 8 mail filter protocol version 4.</dd> 10852 10853<dt>6</dt> <dd>Use Sendmail 8 mail filter protocol version 6 (default 10854with Sendmail version 8.14 and Postfix version 2.6).</dd> 10855 10856</dl> 10857 10858<p>Protocol extensions: </p> 10859 10860<dl compact> 10861 10862<dt>no_header_reply</dt> <dd> Specify this when the Milter application 10863will not reply for each individual message header.</dd> 10864 10865</dl> 10866 10867<p> This feature is available in Postfix 2.3 and later. </p> 10868 10869%PARAM milter_default_action tempfail 10870 10871<p> The default action when a Milter (mail filter) application is 10872unavailable or mis-configured. Specify one of the following: </p> 10873 10874<dl compact> 10875 10876<dt>accept</dt> <dd>Proceed as if the mail filter was not present. 10877</dd> 10878 10879<dt>reject</dt> <dd>Reject all further commands in this session 10880with a permanent status code.</dd> 10881 10882<dt>tempfail</dt> <dd>Reject all further commands in this session 10883with a temporary status code. </dd> 10884 10885<dt>quarantine</dt> <dd>Like "accept", but freeze the message in 10886the "hold" queue. Available with Postfix 2.6 and later. </dd> 10887 10888</dl> 10889 10890<p> This feature is available in Postfix 2.3 and later. </p> 10891 10892%PARAM milter_connect_timeout 30s 10893 10894<p> The time limit for connecting to a Milter (mail filter) 10895application, and for negotiating protocol options. </p> 10896 10897<p> Specify a non-zero time value (an integral value plus an optional 10898one-letter suffix that specifies the time unit). </p> 10899 10900<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 10901(weeks). The default time unit is s (seconds). </p> 10902 10903<p> This feature is available in Postfix 2.3 and later. </p> 10904 10905%PARAM milter_command_timeout 30s 10906 10907<p> The time limit for sending an SMTP command to a Milter (mail 10908filter) application, and for receiving the response. </p> 10909 10910<p> Specify a non-zero time value (an integral value plus an optional 10911one-letter suffix that specifies the time unit). </p> 10912 10913<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 10914(weeks). The default time unit is s (seconds). </p> 10915 10916<p> This feature is available in Postfix 2.3 and later. </p> 10917 10918%PARAM milter_content_timeout 300s 10919 10920<p> The time limit for sending message content to a Milter (mail 10921filter) application, and for receiving the response. </p> 10922 10923<p> Specify a non-zero time value (an integral value plus an optional 10924one-letter suffix that specifies the time unit). </p> 10925 10926<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 10927(weeks). The default time unit is s (seconds). </p> 10928 10929<p> This feature is available in Postfix 2.3 and later. </p> 10930 10931%PARAM milter_connect_macros see "postconf -d" output 10932 10933<p> The macros that are sent to Milter (mail filter) applications 10934after completion of an SMTP connection. See MILTER_README 10935for a list of available macro names and their meanings. </p> 10936 10937<p> This feature is available in Postfix 2.3 and later. </p> 10938 10939%PARAM milter_helo_macros see "postconf -d" output 10940 10941<p> The macros that are sent to Milter (mail filter) applications 10942after the SMTP HELO or EHLO command. See 10943MILTER_README for a list of available macro names and their meanings. 10944</p> 10945 10946<p> This feature is available in Postfix 2.3 and later. </p> 10947 10948%PARAM milter_mail_macros see "postconf -d" output 10949 10950<p> The macros that are sent to Milter (mail filter) applications 10951after the SMTP MAIL FROM command. See MILTER_README 10952for a list of available macro names and their meanings. </p> 10953 10954<p> This feature is available in Postfix 2.3 and later. </p> 10955 10956%PARAM milter_rcpt_macros see "postconf -d" output 10957 10958<p> The macros that are sent to Milter (mail filter) applications 10959after the SMTP RCPT TO command. See MILTER_README 10960for a list of available macro names and their meanings. </p> 10961 10962<p> This feature is available in Postfix 2.3 and later. </p> 10963 10964%PARAM milter_data_macros see "postconf -d" output 10965 10966<p> The macros that are sent to version 4 or higher Milter (mail 10967filter) applications after the SMTP DATA command. See MILTER_README 10968for a list of available macro names and their meanings. </p> 10969 10970<p> This feature is available in Postfix 2.3 and later. </p> 10971 10972%PARAM milter_end_of_header_macros see "postconf -d" output 10973 10974<p> The macros that are sent to Milter (mail filter) applications 10975after the end of the message header. See MILTER_README for a list 10976of available macro names and their meanings. </p> 10977 10978<p> This feature is available in Postfix 2.5 and later. </p> 10979 10980%PARAM milter_end_of_data_macros see "postconf -d" output 10981 10982<p> The macros that are sent to Milter (mail filter) applications 10983after the message end-of-data. See MILTER_README for a list of 10984available macro names and their meanings. </p> 10985 10986<p> This feature is available in Postfix 2.3 and later. </p> 10987 10988%PARAM milter_unknown_command_macros see "postconf -d" output 10989 10990<p> The macros that are sent to version 3 or higher Milter (mail 10991filter) applications after an unknown SMTP command. See MILTER_README 10992for a list of available macro names and their meanings. </p> 10993 10994<p> This feature is available in Postfix 2.3 and later. </p> 10995 10996%PARAM milter_macro_daemon_name $myhostname 10997 10998<p> The {daemon_name} macro value for Milter (mail filter) applications. 10999See MILTER_README for a list of available macro names and their 11000meanings. </p> 11001 11002<p> This feature is available in Postfix 2.3 and later. </p> 11003 11004%PARAM milter_macro_v $mail_name $mail_version 11005 11006<p> The {v} macro value for Milter (mail filter) applications. 11007See MILTER_README for a list of available macro names and their 11008meanings. </p> 11009 11010<p> This feature is available in Postfix 2.3 and later. </p> 11011 11012%PARAM smtpd_tls_mandatory_ciphers medium 11013 11014<p> The minimum TLS cipher grade that the Postfix SMTP server will 11015use with mandatory TLS encryption. The default grade ("medium") is 11016sufficiently strong that any benefit from globally restricting TLS 11017sessions to a more stringent grade is likely negligible, especially 11018given the fact that many implementations still do not offer any stronger 11019("high" grade) ciphers, while those that do, will always use "high" 11020grade ciphers. So insisting on "high" grade ciphers is generally 11021counter-productive. Allowing "export" or "low" ciphers is typically 11022not a good idea, as systems limited to just these are limited to 11023obsolete browsers. No known SMTP clients fail to support at least 11024one "medium" or "high" grade cipher. </p> 11025 11026<p> The following cipher grades are supported: </p> 11027 11028<dl> 11029<dt><b>export</b></dt> 11030<dd> Enable "EXPORT" grade or stronger OpenSSL ciphers. 11031This is the most appropriate setting for public MX hosts, and is always 11032used with opportunistic TLS encryption. The underlying cipherlist 11033is specified via the tls_export_cipherlist configuration parameter, 11034which you are strongly encouraged to not change. </dd> 11035 11036<dt><b>low</b></dt> 11037<dd> Enable "LOW" grade or stronger OpenSSL ciphers. The 11038underlying cipherlist is specified via the tls_low_cipherlist 11039configuration parameter, which you are strongly encouraged to 11040not change. </dd> 11041 11042<dt><b>medium</b></dt> 11043<dd> Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit 11044or longer symmetric bulk-encryption keys. This is the default minimum 11045strength for mandatory TLS encryption. The underlying cipherlist is 11046specified via the tls_medium_cipherlist configuration parameter, which 11047you are strongly encouraged to not change. </dd> 11048 11049<dt><b>high</b></dt> 11050<dd> Enable only "HIGH" grade OpenSSL ciphers. The 11051underlying cipherlist is specified via the tls_high_cipherlist 11052configuration parameter, which you are strongly encouraged to 11053not change. </dd> 11054 11055<dt><b>null</b></dt> 11056<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication 11057without encryption. This setting is only appropriate in the rare 11058case that all clients are prepared to use NULL ciphers (not normally 11059enabled in TLS clients). The underlying cipherlist is specified via the 11060tls_null_cipherlist configuration parameter, which you are strongly 11061encouraged to not change. </dd> 11062 11063</dl> 11064 11065<p> Cipher types listed in 11066smtpd_tls_mandatory_exclude_ciphers or smtpd_tls_exclude_ciphers are 11067excluded from the base definition of the selected cipher grade. See 11068smtpd_tls_ciphers for cipher controls that apply to opportunistic 11069TLS. </p> 11070 11071<p> The underlying cipherlists for grades other than "null" include 11072anonymous ciphers, but these are automatically filtered out if the 11073server is configured to ask for remote SMTP client certificates. You are very 11074unlikely to need to take any steps to exclude anonymous ciphers, they 11075are excluded automatically as required. If you must exclude anonymous 11076ciphers even when Postfix does not need or use peer certificates, set 11077"smtpd_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers only 11078when TLS is enforced, set "smtpd_tls_mandatory_exclude_ciphers = aNULL". </p> 11079 11080<p> This feature is available in Postfix 2.3 and later. </p> 11081 11082%PARAM smtpd_tls_exclude_ciphers 11083 11084<p> List of ciphers or cipher types to exclude from the SMTP server 11085cipher list at all TLS security levels. Excluding valid ciphers 11086can create interoperability problems. DO NOT exclude ciphers unless it 11087is essential to do so. This is not an OpenSSL cipherlist; it is a simple 11088list separated by whitespace and/or commas. The elements are a single 11089cipher, or one or more "+" separated cipher properties, in which case 11090only ciphers matching <b>all</b> the properties are excluded. </p> 11091 11092<p> Examples (some of these will cause problems): </p> 11093 11094<blockquote> 11095<pre> 11096smtpd_tls_exclude_ciphers = aNULL 11097smtpd_tls_exclude_ciphers = MD5, DES 11098smtpd_tls_exclude_ciphers = DES+MD5 11099smtpd_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 11100smtpd_tls_exclude_ciphers = kEDH+aRSA 11101</pre> 11102</blockquote> 11103 11104<p> The first setting disables anonymous ciphers. The next setting 11105disables ciphers that use the MD5 digest algorithm or the (single) DES 11106encryption algorithm. The next setting disables ciphers that use MD5 and 11107DES together. The next setting disables the two ciphers "AES256-SHA" 11108and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH" 11109key exchange with RSA authentication. </p> 11110 11111<p> This feature is available in Postfix 2.3 and later. </p> 11112 11113%PARAM smtpd_tls_mandatory_exclude_ciphers 11114 11115<p> Additional list of ciphers or cipher types to exclude from the 11116Postfix SMTP server cipher list at mandatory TLS security levels. 11117This list 11118works in addition to the exclusions listed with smtpd_tls_exclude_ciphers 11119(see there for syntax details). </p> 11120 11121<p> This feature is available in Postfix 2.3 and later. </p> 11122 11123%PARAM smtp_tls_mandatory_ciphers medium 11124 11125<p> The minimum TLS cipher grade that the Postfix SMTP client will 11126use with 11127mandatory TLS encryption. The default value "medium" is suitable 11128for most destinations with which you may want to enforce TLS, and 11129is beyond the reach of today's cryptanalytic methods. See 11130smtp_tls_policy_maps for information on how to configure ciphers 11131on a per-destination basis. </p> 11132 11133<p> The following cipher grades are supported: </p> 11134 11135<dl> 11136<dt><b>export</b></dt> 11137<dd> Enable "EXPORT" grade or better OpenSSL 11138ciphers. This is the default for opportunistic encryption. It is 11139not recommended for mandatory encryption unless you must enforce TLS 11140with "crippled" peers. The underlying cipherlist is specified via the 11141tls_export_cipherlist configuration parameter, which you are strongly 11142encouraged to not change. </dd> 11143 11144<dt><b>low</b></dt> 11145<dd> Enable "LOW" grade or better OpenSSL ciphers. This 11146setting is only appropriate for internal mail servers. The underlying 11147cipherlist is specified via the tls_low_cipherlist configuration 11148parameter, which you are strongly encouraged to not change. </dd> 11149 11150<dt><b>medium</b></dt> 11151<dd> Enable "MEDIUM" grade or better OpenSSL ciphers. 11152The underlying cipherlist is specified via the tls_medium_cipherlist 11153configuration parameter, which you are strongly encouraged to not change. 11154</dd> 11155 11156<dt><b>high</b></dt> 11157<dd> Enable only "HIGH" grade OpenSSL ciphers. This setting may 11158be appropriate when all mandatory TLS destinations (e.g. when all 11159mail is routed to a suitably capable relayhost) support at least one 11160"HIGH" grade cipher. The underlying cipherlist is specified via the 11161tls_high_cipherlist configuration parameter, which you are strongly 11162encouraged to not change. </dd> 11163 11164<dt><b>null</b></dt> 11165<dd> Enable only the "NULL" OpenSSL ciphers, these provide authentication 11166without encryption. This setting is only appropriate in the rare case 11167that all servers are prepared to use NULL ciphers (not normally enabled 11168in TLS servers). A plausible use-case is an LMTP server listening on a 11169UNIX-domain socket that is configured to support "NULL" ciphers. The 11170underlying cipherlist is specified via the tls_null_cipherlist 11171configuration parameter, which you are strongly encouraged to not 11172change. </dd> 11173 11174</dl> 11175 11176<p> The underlying cipherlists for grades other than "null" include 11177anonymous ciphers, but these are automatically filtered out if the 11178Postfix SMTP client is configured to verify server certificates. 11179You are very unlikely to need to take any steps to exclude anonymous 11180ciphers, they are excluded automatically as necessary. If you must 11181exclude anonymous ciphers at the "may" or "encrypt" security levels, 11182when the Postfix SMTP client does not need or use peer certificates, set 11183"smtp_tls_exclude_ciphers = aNULL". To exclude anonymous ciphers only when 11184TLS is enforced, set "smtp_tls_mandatory_exclude_ciphers = aNULL". </p> 11185 11186<p> This feature is available in Postfix 2.3 and later. </p> 11187 11188%PARAM smtp_tls_exclude_ciphers 11189 11190<p> List of ciphers or cipher types to exclude from the Postfix 11191SMTP client cipher 11192list at all TLS security levels. This is not an OpenSSL cipherlist, it is 11193a simple list separated by whitespace and/or commas. The elements are a 11194single cipher, or one or more "+" separated cipher properties, in which 11195case only ciphers matching <b>all</b> the properties are excluded. </p> 11196 11197<p> Examples (some of these will cause problems): </p> 11198 11199<blockquote> 11200<pre> 11201smtp_tls_exclude_ciphers = aNULL 11202smtp_tls_exclude_ciphers = MD5, DES 11203smtp_tls_exclude_ciphers = DES+MD5 11204smtp_tls_exclude_ciphers = AES256-SHA, DES-CBC3-MD5 11205smtp_tls_exclude_ciphers = kEDH+aRSA 11206</pre> 11207</blockquote> 11208 11209<p> The first setting, disables anonymous ciphers. The next setting 11210disables ciphers that use the MD5 digest algorithm or the (single) DES 11211encryption algorithm. The next setting disables ciphers that use MD5 and 11212DES together. The next setting disables the two ciphers "AES256-SHA" 11213and "DES-CBC3-MD5". The last setting disables ciphers that use "EDH" 11214key exchange with RSA authentication. </p> 11215 11216<p> This feature is available in Postfix 2.3 and later. </p> 11217 11218%PARAM smtp_tls_mandatory_exclude_ciphers 11219 11220<p> Additional list of ciphers or cipher types to exclude from the 11221Postfix SMTP client cipher list at mandatory TLS security levels. This list 11222works in addition to the exclusions listed with smtp_tls_exclude_ciphers 11223(see there for syntax details). </p> 11224 11225<p> Starting with Postfix 2.6, the mandatory cipher exclusions can be 11226specified on a per-destination basis via the TLS policy "exclude" 11227attribute. See smtp_tls_policy_maps for notes and examples. </p> 11228 11229<p> This feature is available in Postfix 2.3 and later. </p> 11230 11231%PARAM tls_high_cipherlist ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH 11232 11233<p> The OpenSSL cipherlist for "HIGH" grade ciphers. This defines 11234the meaning of the "high" setting in smtpd_tls_mandatory_ciphers, 11235smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are 11236strongly encouraged to not change this setting. With OpenSSL 1.0.0 and 11237later the cipherlist may start with an "aNULL:" prefix, which restores 11238the 0.9.8-compatible ordering of the aNULL ciphers to the top of the 11239list when they are enabled. This prefix is not needed with previous 11240OpenSSL releases. </p> 11241 11242<p> This feature is available in Postfix 2.3 and later. </p> 11243 11244%PARAM tls_medium_cipherlist ALL:!EXPORT:!LOW:+RC4:@STRENGTH 11245 11246<p> The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This 11247defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers, 11248smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is 11249the default cipherlist for mandatory TLS encryption in the TLS 11250client (with anonymous ciphers disabled when verifying server 11251certificates). You are strongly encouraged to not change this 11252setting. With OpenSSL 1.0.0 and later the cipherlist may start with an 11253"aNULL:" prefix, which restores the 0.9.8-compatible ordering of the 11254aNULL ciphers to the top of the list when they are enabled. This prefix 11255is not needed with previous OpenSSL releases. </p> 11256 11257<p> This feature is available in Postfix 2.3 and later. </p> 11258 11259%PARAM tls_low_cipherlist ALL:!EXPORT:+RC4:@STRENGTH 11260 11261<p> The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines 11262the meaning of the "low" setting in smtpd_tls_mandatory_ciphers, 11263smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are 11264strongly encouraged to not change this setting. With OpenSSL 1.0.0 and 11265later the cipherlist may start with an "aNULL:" prefix, which restores 11266the 0.9.8-compatible ordering of the aNULL ciphers to the top of the 11267list when they are enabled. This prefix is not needed with previous 11268OpenSSL releases. </p> 11269 11270<p> This feature is available in Postfix 2.3 and later. </p> 11271 11272%PARAM tls_export_cipherlist ALL:+RC4:@STRENGTH 11273 11274<p> The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This 11275defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers, 11276smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is 11277the cipherlist for the opportunistic ("may") TLS client security 11278level and is the default cipherlist for the SMTP server. You are 11279strongly encouraged to not change this setting. With OpenSSL 1.0.0 and 11280later the cipherlist may start with an "aNULL:" prefix, which restores 11281the 0.9.8-compatible ordering of the aNULL ciphers to the top of the 11282list when they are enabled. This prefix is not needed with previous 11283OpenSSL releases. </p> 11284 11285<p> This feature is available in Postfix 2.3 and later. </p> 11286 11287%PARAM tls_null_cipherlist eNULL:!aNULL 11288 11289<p> The OpenSSL cipherlist for "NULL" grade ciphers that provide 11290authentication without encryption. This defines the meaning of the "null" 11291setting in smtpd_mandatory_tls_ciphers, smtp_tls_mandatory_ciphers and 11292lmtp_tls_mandatory_ciphers. You are strongly encouraged to not 11293change this setting. </p> 11294 11295<p> This feature is available in Postfix 2.3 and later. </p> 11296 11297%PARAM lmtp_tls_mandatory_ciphers 11298 11299<p> The LMTP-specific version of the smtp_tls_mandatory_ciphers 11300configuration parameter. See there for details. </p> 11301 11302<p> This feature is available in Postfix 2.3 and later. </p> 11303 11304%PARAM lmtp_tls_exclude_ciphers 11305 11306<p> The LMTP-specific version of the smtp_tls_exclude_ciphers 11307configuration parameter. See there for details. </p> 11308 11309<p> This feature is available in Postfix 2.3 and later. </p> 11310 11311%PARAM lmtp_tls_mandatory_exclude_ciphers 11312 11313<p> The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers 11314configuration parameter. See there for details. </p> 11315 11316<p> This feature is available in Postfix 2.3 and later. </p> 11317 11318%PARAM smtpd_tls_security_level 11319 11320<p> The SMTP TLS security level for the Postfix SMTP server; when 11321a non-empty value is specified, this overrides the obsolete parameters 11322smtpd_use_tls and smtpd_enforce_tls. This parameter is ignored with 11323"smtpd_tls_wrappermode = yes". </p> 11324 11325<p> Specify one of the following security levels: </p> 11326 11327<dl> 11328 11329<dt><b>none</b></dt> <dd> TLS will not be used. </dd> 11330 11331<dt><b>may</b></dt> <dd> Opportunistic TLS: announce STARTTLS support 11332to remote SMTP clients, but do not require that clients use TLS encryption. 11333</dd> 11334 11335<dt><b>encrypt</b></dt> <dd>Mandatory TLS encryption: announce 11336STARTTLS support to remote SMTP clients, and require that clients use TLS 11337encryption. According to RFC 2487 this MUST NOT be applied in case 11338of a publicly-referenced SMTP server. Instead, this option should 11339be used only on dedicated servers. </dd> 11340 11341</dl> 11342 11343<p> Note 1: the "fingerprint", "verify" and "secure" levels are not 11344supported here. 11345The Postfix SMTP server logs a warning and uses "encrypt" instead. 11346To verify remote SMTP client certificates, see TLS_README for a discussion 11347of the smtpd_tls_ask_ccert, smtpd_tls_req_ccert, and permit_tls_clientcerts 11348features. </p> 11349 11350<p> Note 2: The parameter setting "smtpd_tls_security_level = 11351encrypt" implies "smtpd_tls_auth_only = yes".</p> 11352 11353<p> Note 3: when invoked via "sendmail -bs", Postfix will never 11354offer STARTTLS due to insufficient privileges to access the server 11355private key. This is intended behavior.</p> 11356 11357<p> This feature is available in Postfix 2.3 and later. </p> 11358 11359%PARAM internal_mail_filter_classes 11360 11361<p> What categories of Postfix-generated mail are subject to 11362before-queue content inspection by non_smtpd_milters, header_checks 11363and body_checks. Specify zero or more of the following, separated 11364by whitespace or comma. </p> 11365 11366<dl> 11367 11368<dt><b>bounce</b></dt> <dd> Inspect the content of delivery 11369status notifications. </dd> 11370 11371<dt><b>notify</b></dt> <dd> Inspect the content of postmaster 11372notifications by the smtp(8) and smtpd(8) processes. </dd> 11373 11374</dl> 11375 11376<p> NOTE: It's generally not safe to enable content inspection of 11377Postfix-generated email messages. The user is warned. </p> 11378 11379<p> This feature is available in Postfix 2.3 and later. </p> 11380 11381%PARAM smtpd_tls_always_issue_session_ids yes 11382 11383<p> Force the Postfix SMTP server to issue a TLS session id, even 11384when TLS session caching is turned off (smtpd_tls_session_cache_database 11385is empty). This behavior is compatible with Postfix < 2.3. </p> 11386 11387<p> With Postfix 2.3 and later the Postfix SMTP server can disable 11388session id generation when TLS session caching is turned off. This 11389keeps remote SMTP clients from caching sessions that almost certainly cannot 11390be re-used. </p> 11391 11392<p> By default, the Postfix SMTP server always generates TLS session 11393ids. This works around a known defect in mail client applications 11394such as MS Outlook, and may also prevent interoperability issues 11395with other MTAs. </p> 11396 11397<p> Example: </p> 11398 11399<pre> 11400smtpd_tls_always_issue_session_ids = no 11401</pre> 11402 11403<p> This feature is available in Postfix 2.3 and later. </p> 11404 11405%PARAM smtp_pix_workarounds disable_esmtp, delay_dotcrlf 11406 11407<p> A list that specifies zero or more workarounds for CISCO PIX 11408firewall bugs. These workarounds are implemented by the Postfix 11409SMTP client. Workaround names are separated by comma or space, and 11410are case insensitive. This parameter setting can be overruled with 11411per-destination smtp_pix_workaround_maps settings. </p> 11412 11413<dl> 11414 11415<dt><b>delay_dotcrlf</b><dd> Insert a delay before sending 11416".<CR><LF>" after the end of the message content. The 11417delay is subject to the smtp_pix_workaround_delay_time and 11418smtp_pix_workaround_threshold_time parameter settings. </dd> 11419 11420<dt><b>disable_esmtp</b><dd> Disable all extended SMTP commands: 11421send HELO instead of EHLO. </dd> 11422 11423</dl> 11424 11425<p> This feature is available in Postfix 2.4 and later. The default 11426settings are backwards compatible with earlier Postfix versions. 11427</p> 11428 11429%PARAM smtp_pix_workaround_maps 11430 11431<p> Lookup tables, indexed by the remote SMTP server address, with 11432per-destination workarounds for CISCO PIX firewall bugs. The table 11433is not indexed by hostname for consistency with 11434smtp_discard_ehlo_keyword_address_maps. </p> 11435 11436<p> This feature is available in Postfix 2.4 and later. </p> 11437 11438%PARAM lmtp_pix_workarounds 11439 11440<p> The LMTP-specific version of the smtp_pix_workaround 11441configuration parameter. See there for details. </p> 11442 11443<p> This feature is available in Postfix 2.4 and later. </p> 11444 11445%PARAM smtp_tls_fingerprint_digest md5 11446 11447<p> The message digest algorithm used to construct remote SMTP server 11448certificate fingerprints. At the "fingerprint" TLS security level 11449(<b>smtp_tls_security_level</b> = fingerprint), the server certificate is 11450verified by directly matching its certificate fingerprint or its public 11451key fingerprint (Postfix 2.9 and later). The fingerprint is the 11452message digest of the server certificate (or its public key) 11453using the selected 11454algorithm. With a digest algorithm resistant to "second pre-image" 11455attacks, it is not feasible to create a new public key and a matching 11456certificate (or public/private key-pair) that has the same fingerprint. </p> 11457 11458<p> The default algorithm is <b>md5</b>; this is consistent with 11459the backwards compatible setting of the digest used to verify client 11460certificates in the SMTP server. </p> 11461 11462<p> The best practice algorithm is now <b>sha1</b>. Recent advances in hash 11463function cryptanalysis have led to md5 being deprecated in favor of sha1. 11464However, as long as there are no known "second pre-image" attacks 11465against md5, its use in this context can still be considered safe. 11466</p> 11467 11468<p> While additional digest algorithms are often available with OpenSSL's 11469libcrypto, only those used by libssl in SSL cipher suites are available to 11470Postfix. For now this means just md5 or sha1. </p> 11471 11472<p> To find the fingerprint of a specific certificate file, with a 11473specific digest algorithm, run: 11474</p> 11475 11476<blockquote> 11477<pre> 11478$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem 11479</pre> 11480</blockquote> 11481 11482<p> The text to the right of "=" sign is the desired fingerprint. 11483For example: </p> 11484 11485<blockquote> 11486<pre> 11487$ openssl x509 -noout -fingerprint -sha1 -in cert.pem 11488SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A 11489</pre> 11490</blockquote> 11491 11492<p> Public key fingerprints are more difficult to extract, however, 11493the SHA-1 public key fingerprint is often present as the value of the 11494"Subject Key Identifier" extension in X.509v3 certificates. The Postfix 11495SMTP server and client log the peer certificate fingerprint and public 11496key fingerprint when TLS loglevel is 1 or higher. </p> 11497 11498<p> This feature is available in Postfix 2.5 and later. </p> 11499 11500%PARAM smtp_tls_fingerprint_cert_match 11501 11502<p> List of acceptable remote SMTP server certificate fingerprints for 11503the "fingerprint" TLS security level (<b>smtp_tls_security_level</b> = 11504fingerprint). At this security level, certificate authorities are not 11505used, and certificate expiration times are ignored. Instead, server 11506certificates are verified directly via their certificate fingerprint 11507or public key fingerprint (Postfix 2.9 and later). The fingerprint 11508is a message digest of the server certificate (or public key). The 11509digest algorithm is selected via the <b>smtp_tls_fingerprint_digest</b> 11510parameter. </p> 11511 11512<p> When an <b>smtp_tls_policy_maps</b> table entry specifies the 11513"fingerprint" security level, any "match" attributes in that entry specify 11514the list of valid fingerprints for the corresponding destination. Multiple 11515fingerprints can be combined with a "|" delimiter in a single match 11516attribute, or multiple match attributes can be employed. </p> 11517 11518<p> Example: Certificate fingerprint verification with internal mailhub. 11519Two matching fingerprints are listed. The relayhost may be multiple 11520physical hosts behind a load-balancer, each with its own private/public 11521key and self-signed certificate. Alternatively, a single relayhost may 11522be in the process of switching from one set of private/public keys to 11523another, and both keys are trusted just prior to the transition. </p> 11524 11525<blockquote> 11526<pre> 11527relayhost = [mailhub.example.com] 11528smtp_tls_security_level = fingerprint 11529smtp_tls_fingerprint_digest = md5 11530smtp_tls_fingerprint_cert_match = 11531 3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1 11532 EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35 11533</pre> 11534</blockquote> 11535 11536<p> Example: Certificate fingerprint verification with selected destinations. 11537As in the example above, we show two matching fingerprints: </p> 11538 11539<blockquote> 11540<pre> 11541/etc/postfix/main.cf: 11542 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy 11543 smtp_tls_fingerprint_digest = md5 11544</pre> 11545</blockquote> 11546 11547<blockquote> 11548<pre> 11549/etc/postfix/tls_policy: 11550 example.com fingerprint 11551 match=3D:95:34:51:24:66:33:B9:D2:40:99:C0:C1:17:0B:D1 11552 match=EC:3B:2D:B0:5B:B1:FB:6D:20:A3:9D:72:F6:8D:12:35 11553</pre> 11554</blockquote> 11555 11556<p> This feature is available in Postfix 2.5 and later. </p> 11557 11558%PARAM lmtp_tls_fingerprint_cert_match 11559 11560<p> The LMTP-specific version of the smtp_tls_fingerprint_cert_match 11561configuration parameter. See there for details. </p> 11562 11563<p> This feature is available in Postfix 2.5 and later. </p> 11564 11565%PARAM lmtp_tls_fingerprint_digest md5 11566 11567<p> The LMTP-specific version of the smtp_tls_fingerprint_digest 11568configuration parameter. See there for details. </p> 11569 11570<p> This feature is available in Postfix 2.5 and later. </p> 11571 11572%PARAM smtpd_tls_fingerprint_digest md5 11573 11574<p> The message digest algorithm to construct remote SMTP 11575client-certificate 11576fingerprints or public key fingerprints (Postfix 2.9 and later) 11577for <b>check_ccert_access</b> and <b>permit_tls_clientcerts</b>. The 11578default algorithm is <b>md5</b>, for backwards compatibility with Postfix 11579releases prior to 2.5. </p> 11580 11581<p> Advances in hash 11582function cryptanalysis have led to md5 being deprecated in favor of sha1. 11583However, as long as there are no known "second pre-image" attacks 11584against md5, its use in this context can still be considered safe. 11585</p> 11586 11587<p> While additional digest algorithms are often available with OpenSSL's 11588libcrypto, only those used by libssl in SSL cipher suites are available to 11589Postfix. </p> 11590 11591<p> To find the fingerprint of a specific certificate file, with a 11592specific digest algorithm, run: </p> 11593 11594<blockquote> 11595<pre> 11596$ openssl x509 -noout -fingerprint -<i>digest</i> -in <i>certfile</i>.pem 11597</pre> 11598</blockquote> 11599 11600<p> The text to the right of "=" sign is the desired fingerprint. 11601For example: </p> 11602 11603<blockquote> 11604<pre> 11605$ openssl x509 -noout -fingerprint -sha1 -in cert.pem 11606SHA1 Fingerprint=D4:6A:AB:19:24:79:F8:32:BB:A6:CB:66:82:C0:8E:9B:EE:29:A8:1A 11607</pre> 11608</blockquote> 11609 11610<p> Public key fingerprints are more difficult to extract, however, 11611the SHA-1 public key fingerprint is often present as the value of the 11612"Subject Key Identifier" extension in X.509v3 certificates. The Postfix 11613SMTP server and client log the peer certificate fingerprint and public 11614key fingerprint when TLS loglevel is 1 or higher. </p> 11615 11616<p> Example: client-certificate access table, with sha1 fingerprints: </p> 11617 11618<blockquote> 11619<pre> 11620/etc/postfix/main.cf: 11621 smtpd_tls_fingerprint_digest = sha1 11622 smtpd_client_restrictions = 11623 check_ccert_access hash:/etc/postfix/access, 11624 reject 11625</pre> 11626<pre> 11627/etc/postfix/access: 11628 # Action folded to next line... 11629 AF:88:7C:AD:51:95:6F:36:96:F6:01:FB:2E:48:CD:AB:49:25:A2:3B 11630 OK 11631 85:16:78:FD:73:6E:CE:70:E0:31:5F:0D:3C:C8:6D:C4:2C:24:59:E1 11632 permit_auth_destination 11633</pre> 11634</blockquote> 11635 11636<p> This feature is available in Postfix 2.5 and later. </p> 11637 11638%PARAM lmtp_pix_workaround_maps 11639 11640<p> The LMTP-specific version of the smtp_pix_workaround_maps 11641configuration parameter. See there for details. </p> 11642 11643<p> This feature is available in Postfix 2.4 and later. </p> 11644 11645%PARAM detect_8bit_encoding_header yes 11646 11647<p> Automatically detect 8BITMIME body content by looking at 11648Content-Transfer-Encoding: message headers; historically, this 11649behavior was hard-coded to be "always on". </p> 11650 11651<p> This feature is available in Postfix 2.5 and later. </p> 11652 11653%PARAM send_cyrus_sasl_authzid no 11654 11655<p> When authenticating to a remote SMTP or LMTP server with the 11656default setting "no", send no SASL authoriZation ID (authzid); send 11657only the SASL authentiCation ID (authcid) plus the authcid's password. 11658</p> 11659 11660<p> The non-default setting "yes" enables the behavior of older 11661Postfix versions. These always send a SASL authzid that is equal 11662to the SASL authcid, but this causes inter-operability problems 11663with some SMTP servers. </p> 11664 11665<p> This feature is available in Postfix 2.4.4 and later. </p> 11666 11667%PARAM smtpd_client_port_logging no 11668 11669<p> Enable logging of the remote SMTP client port in addition to 11670the hostname and IP address. The logging format is "host[address]:port". 11671</p> 11672 11673<p> This feature is available in Postfix 2.5 and later. </p> 11674 11675%PARAM qmqpd_client_port_logging no 11676 11677<p> Enable logging of the remote QMQP client port in addition to 11678the hostname and IP address. The logging format is "host[address]:port". 11679</p> 11680 11681<p> This feature is available in Postfix 2.5 and later. </p> 11682 11683%PARAM smtp_tls_protocols !SSLv2 11684 11685<p> List of TLS protocols that the Postfix SMTP client will exclude or 11686include with opportunistic TLS encryption. Starting with Postfix 2.6, 11687the Postfix SMTP client will by default not use the obsolete SSLv2 11688protocol. </p> 11689 11690<p> In main.cf the values are separated by whitespace, commas or 11691colons. In the policy table (see smtp_tls_policy_maps) the only valid 11692separator is colon. An empty value means allow all protocols. The valid 11693protocol names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" 11694and "TLSv1". </p> 11695 11696<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1" 11697and "TLSv1.2". If an older Postfix version is linked against OpenSSL 116981.0.1 or later, these, or any other new protocol versions, are 11699unconditionally enabled. </p> 11700 11701<p> To include a protocol list its name, to exclude it, prefix the name 11702with a "!" character. To exclude SSLv2 even for opportunistic TLS set 11703"smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set 11704"smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to 11705include, rather than protocols to exclude, is supported, but not 11706recommended. The exclusion form more closely matches the behaviour 11707when the OpenSSL library is newer than Postfix. </p> 11708 11709<p> Example: </p> 11710<pre> 11711# TLSv1 only! 11712smtp_tls_protocols = !SSLv2, !SSLv3 11713</pre> 11714 11715<p> This feature is available in Postfix 2.6 and later. </p> 11716 11717%PARAM smtpd_tls_protocols 11718 11719<p> List of TLS protocols that the Postfix SMTP server will exclude 11720or include with opportunistic TLS encryption. This parameter SHOULD be 11721left at its default empty value, allowing all protocols to be used with 11722opportunistic TLS. </p> 11723 11724<p> In main.cf the values are separated by whitespace, commas or 11725colons. An empty value means allow all protocols. The valid protocol 11726names, (see <b>SSL_get_version(3)</b>), are "SSLv2", "SSLv3" and 11727"TLSv1". In smtp_tls_policy_maps table entries, "protocols" attribute 11728values are separated by a colon. </p> 11729 11730<p> Note: As of OpenSSL 1.0.1 two new protocols are defined, "TLSv1.1" 11731and "TLSv1.2". If an older Postfix version is linked against OpenSSL 117321.0.1 or later, these, or any other new protocol versions, are 11733unconditionally enabled. </p> 11734 11735<p> To include a protocol list its name, to exclude it, prefix the name 11736with a "!" character. To exclude SSLv2 even for opportunistic TLS set 11737"smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set 11738"smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to 11739include, rather than protocols to exclude, is supported, but not 11740recommended. The exclusion form more closely matches the behaviour 11741when the OpenSSL library is newer than Postfix. </p> 11742 11743<p> Example: </p> 11744<pre> 11745smtpd_tls_protocols = !SSLv2 11746</pre> 11747 11748<p> This feature is available in Postfix 2.6 and later. </p> 11749 11750%PARAM lmtp_tls_protocols 11751 11752<p> The LMTP-specific version of the smtp_tls_protocols configuration 11753parameter. See there for details. </p> 11754 11755<p> This feature is available in Postfix 2.6 and later. </p> 11756 11757%PARAM smtp_tls_ciphers export 11758 11759<p> The minimum TLS cipher grade that the Postfix SMTP client 11760will use with opportunistic TLS encryption. Cipher types listed in 11761smtp_tls_exclude_ciphers are excluded from the base definition of 11762the selected cipher grade. The default value "export" ensures maximum 11763inter-operability. Because encryption is optional, stronger controls 11764are not appropriate, and this setting SHOULD NOT be changed unless the 11765change is essential. </p> 11766 11767<p> When TLS is mandatory the cipher grade is chosen via the 11768smtp_tls_mandatory_ciphers configuration parameter, see there for syntax 11769details. See smtp_tls_policy_maps for information on how to configure 11770ciphers on a per-destination basis. </p> 11771 11772<p> Example: </p> 11773<pre> 11774smtp_tls_ciphers = export 11775</pre> 11776 11777<p> This feature is available in Postfix 2.6 and later. With earlier Postfix 11778releases only the smtp_tls_mandatory_ciphers parameter is implemented, 11779and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p> 11780 11781%PARAM smtpd_tls_ciphers export 11782 11783<p> The minimum TLS cipher grade that the Postfix SMTP server 11784will use with opportunistic TLS encryption. Cipher types listed in 11785smtpd_tls_exclude_ciphers are excluded from the base definition of 11786the selected cipher grade. The default value "export" ensures maximum 11787inter-operability. Because encryption is optional, stronger controls 11788are not appropriate, and this setting SHOULD NOT be changed unless the 11789change is essential. </p> 11790 11791<p> When TLS is mandatory the cipher grade is chosen via the 11792smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax 11793details. </p> 11794 11795<p> Example: </p> 11796<pre> 11797smtpd_tls_ciphers = export 11798</pre> 11799 11800<p> This feature is available in Postfix 2.6 and later. With earlier Postfix 11801releases only the smtpd_tls_mandatory_ciphers parameter is implemented, 11802and opportunistic TLS always uses "export" or better (i.e. all) ciphers. </p> 11803 11804%PARAM lmtp_tls_ciphers export 11805 11806<p> The LMTP-specific version of the smtp_tls_ciphers configuration 11807parameter. See there for details. </p> 11808 11809<p> This feature is available in Postfix 2.6 and later. </p> 11810 11811%PARAM tls_eecdh_strong_curve prime256v1 11812 11813<p> The elliptic curve used by the Postfix SMTP server for sensibly 11814strong 11815ephemeral ECDH key exchange. This curve is used by the Postfix SMTP 11816server when "smtpd_tls_eecdh_grade = strong". The phrase "sensibly 11817strong" means approximately 128-bit security based on best known 11818attacks. The selected curve must be implemented by OpenSSL (as 11819reported by ecparam(1) with the "-list_curves" option) and be one 11820of the curves listed in Section 5.1.1 of RFC 4492. You should not 11821generally change this setting. </p> 11822 11823<p> This default curve is specified in NSA "Suite B" Cryptography 11824(see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for 11825information classified as SECRET. </p> 11826 11827<p> Note: elliptic curve names are poorly standardized; different 11828standards groups are assigning different names to the same underlying 11829curves. The curve with the X9.62 name "prime256v1" is also known 11830under the SECG name "secp256r1", but OpenSSL does not recognize the 11831latter name. </p> 11832 11833<p> This feature is available in Postfix 2.6 and later, when it is 11834compiled and linked with OpenSSL 1.0.0 or later. </p> 11835 11836%PARAM tls_eecdh_ultra_curve secp384r1 11837 11838<p> The elliptic curve used by the Postfix SMTP server for maximally 11839strong 11840ephemeral ECDH key exchange. This curve is used by the Postfix SMTP 11841server when "smtpd_tls_eecdh_grade = ultra". The phrase "maximally 11842strong" means approximately 192-bit security based on best known attacks. 11843This additional strength comes at a significant computational cost, most 11844users should instead set "smtpd_tls_eecdh_grade = strong". The selected 11845curve must be implemented by OpenSSL (as reported by ecparam(1) with the 11846"-list_curves" option) and be one of the curves listed in Section 5.1.1 11847of RFC 4492. You should not generally change this setting. </p> 11848 11849<p> This default "ultra" curve is specified in NSA "Suite B" Cryptography 11850(see http://www.nsa.gov/ia/industry/crypto_suite_b.cfm) for information 11851classified as TOP SECRET. </p> 11852 11853<p> This feature is available in Postfix 2.6 and later, when it is 11854compiled and linked with OpenSSL 1.0.0 or later. </p> 11855 11856%PARAM smtpd_tls_eecdh_grade see "postconf -d" output 11857 11858<p> The Postfix SMTP server security grade for ephemeral elliptic-curve 11859Diffie-Hellman (EECDH) key exchange. </p> 11860 11861<p> The available choices are: </p> 11862 11863<dl> 11864 11865<dt><b>none</b></dt> <dd> Don't use EECDH. Ciphers based on EECDH key 11866exchange will be disabled. This is the default in Postfix versions 118672.6 and 2.7. </dd> 11868 11869<dt><b>strong</b></dt> <dd> Use EECDH with approximately 128 11870bits of security at a reasonable computational cost. This is the 11871current best-practice trade-off between security and computational 11872efficiency. This is the default in Postfix version 2.8 and later. 11873</dd> 11874 11875<dt><b>ultra</b></dt> <dd> Use EECDH with approximately 192 bits of 11876security at computational cost that is approximately twice as high 11877as 128 bit strength ECC. Barring significant progress in attacks on 11878elliptic curve crypto-systems, the "strong" curve is sufficient for most 11879users. </dd> 11880 11881</dl> 11882 11883<p> This feature is available in Postfix 2.6 and later, when it is 11884compiled and linked with OpenSSL 1.0.0 or later. </p> 11885 11886%PARAM smtpd_tls_eccert_file 11887 11888<p> File with the Postfix SMTP server ECDSA certificate in PEM format. 11889This file may also contain the Postfix SMTP server private ECDSA key. </p> 11890 11891<p> See the discussion under smtpd_tls_cert_file for more details. </p> 11892 11893<p> Example: </p> 11894 11895<pre> 11896smtpd_tls_eccert_file = /etc/postfix/ecdsa-scert.pem 11897</pre> 11898 11899<p> This feature is available in Postfix 2.6 and later, when Postfix is 11900compiled and linked with OpenSSL 1.0.0 or later. </p> 11901 11902%PARAM smtpd_tls_eckey_file $smtpd_tls_eccert_file 11903 11904<p> File with the Postfix SMTP server ECDSA private key in PEM format. 11905This file may be combined with the Postfix SMTP server ECDSA certificate 11906file specified with $smtpd_tls_eccert_file. </p> 11907 11908<p> The private key must be accessible without a pass-phrase, i.e. it 11909must not be encrypted. File permissions should grant read-only 11910access to the system superuser account ("root"), and no access 11911to anyone else. </p> 11912 11913<p> This feature is available in Postfix 2.6 and later, when Postfix is 11914compiled and linked with OpenSSL 1.0.0 or later. </p> 11915 11916%PARAM smtp_tls_eccert_file 11917 11918<p> File with the Postfix SMTP client ECDSA certificate in PEM format. 11919This file may also contain the Postfix SMTP client ECDSA private key. </p> 11920 11921<p> See the discussion under smtp_tls_cert_file for more details. 11922</p> 11923 11924<p> Example: </p> 11925 11926<pre> 11927smtp_tls_eccert_file = /etc/postfix/ecdsa-ccert.pem 11928</pre> 11929 11930<p> This feature is available in Postfix 2.6 and later, when Postfix is 11931compiled and linked with OpenSSL 1.0.0 or later. </p> 11932 11933%PARAM smtp_tls_eckey_file $smtp_tls_eccert_file 11934 11935<p> File with the Postfix SMTP client ECDSA private key in PEM format. 11936This file may be combined with the Postfix SMTP client ECDSA 11937certificate file specified with $smtp_tls_eccert_file. </p> 11938 11939<p> The private key must be accessible without a pass-phrase, i.e. it 11940must not be encrypted. File permissions should grant read-only 11941access to the system superuser account ("root"), and no access 11942to anyone else. </p> 11943 11944<p> This feature is available in Postfix 2.6 and later, when Postfix is 11945compiled and linked with OpenSSL 1.0.0 or later. </p> 11946 11947%PARAM lmtp_tls_eccert_file 11948 11949<p> The LMTP-specific version of the smtp_tls_eccert_file configuration 11950parameter. See there for details. </p> 11951 11952<p> This feature is available in Postfix 2.6 and later, when Postfix is 11953compiled and linked with OpenSSL 1.0.0 or later. </p> 11954 11955%PARAM lmtp_tls_eckey_file 11956 11957<p> The LMTP-specific version of the smtp_tls_eckey_file configuration 11958parameter. See there for details. </p> 11959 11960<p> This feature is available in Postfix 2.6 and later, when Postfix is 11961compiled and linked with OpenSSL 1.0.0 or later. </p> 11962 11963%PARAM smtp_header_checks 11964 11965<p> Restricted header_checks(5) tables for the Postfix SMTP client. 11966These tables are searched while mail is being delivered. Actions 11967that change the delivery time or destination are not available. 11968</p> 11969 11970<p> This feature is available in Postfix 2.5 and later. </p> 11971 11972%PARAM smtp_mime_header_checks 11973 11974<p> Restricted mime_header_checks(5) tables for the Postfix SMTP 11975client. These tables are searched while mail is being delivered. 11976Actions that change the delivery time or destination are not 11977available. </p> 11978 11979<p> This feature is available in Postfix 2.5 and later. </p> 11980 11981%PARAM smtp_nested_header_checks 11982 11983<p> Restricted nested_header_checks(5) tables for the Postfix SMTP 11984client. These tables are searched while mail is being delivered. 11985Actions that change the delivery time or destination are not 11986available. </p> 11987 11988<p> This feature is available in Postfix 2.5 and later. </p> 11989 11990%PARAM smtp_body_checks 11991 11992<p> Restricted body_checks(5) tables for the Postfix SMTP client. 11993These tables are searched while mail is being delivered. Actions 11994that change the delivery time or destination are not available. 11995</p> 11996 11997<p> This feature is available in Postfix 2.5 and later. </p> 11998 11999%PARAM destination_concurrency_feedback_debug no 12000 12001<p> Make the queue manager's feedback algorithm verbose for performance 12002analysis purposes. </p> 12003 12004<p> This feature is available in Postfix 2.5 and later. </p> 12005 12006%PARAM default_destination_concurrency_failed_cohort_limit 1 12007 12008<p> How many pseudo-cohorts must suffer connection or handshake 12009failure before a specific destination is considered unavailable 12010(and further delivery is suspended). Specify zero to disable this 12011feature. A destination's pseudo-cohort failure count is reset each 12012time a delivery completes without connection or handshake failure 12013for that specific destination. </p> 12014 12015<p> A pseudo-cohort is the number of deliveries equal to a destination's 12016delivery concurrency. </p> 12017 12018<p> Use <i>transport</i>_destination_concurrency_failed_cohort_limit to specify 12019a transport-specific override, where <i>transport</i> is the master.cf 12020name of the message delivery transport. </p> 12021 12022<p> This feature is available in Postfix 2.5. The default setting 12023is compatible with earlier Postfix versions. </p> 12024 12025%PARAM default_destination_concurrency_negative_feedback 1 12026 12027<p> The per-destination amount of delivery concurrency negative 12028feedback, after a delivery completes with a connection or handshake 12029failure. Feedback values are in the range 0..1 inclusive. With 12030negative feedback, concurrency is decremented at the beginning of 12031a sequence of length 1/feedback. This is unlike positive feedback, 12032where concurrency is incremented at the end of a sequence of length 120331/feedback. </p> 12034 12035<p> As of Postfix version 2.5, negative feedback cannot reduce 12036delivery concurrency to zero. Instead, a destination is marked 12037dead (further delivery suspended) after the failed pseudo-cohort 12038count reaches $default_destination_concurrency_failed_cohort_limit 12039(or $<i>transport</i>_destination_concurrency_failed_cohort_limit). 12040To make the scheduler completely immune to connection or handshake 12041failures, specify a zero feedback value and a zero failed pseudo-cohort 12042limit. </p> 12043 12044<p> Specify one of the following forms: </p> 12045 12046<dl> 12047 12048<dt> <b><i>number</i> </b> </dt> 12049 12050<dt> <b><i>number</i> / <i>number</i> </b> </dt> 12051 12052<dd> Constant feedback. The value must be in the range 0..1 inclusive. 12053The default setting of "1" is compatible with Postfix versions 12054before 2.5, where a destination's delivery concurrency is throttled 12055down to zero (and further delivery suspended) after a single failed 12056pseudo-cohort. </dd> 12057 12058<dt> <b><i>number</i> / concurrency </b> </dt> 12059 12060<dd> Variable feedback of "<i>number</i> / (delivery concurrency)". 12061The <i>number</i> must be in the range 0..1 inclusive. With 12062<i>number</i> equal to "1", a destination's delivery concurrency 12063is decremented by 1 after each failed pseudo-cohort. </dd> 12064 12065<!-- 12066 12067<dt> <b><i>number</i> / sqrt_concurrency </b> </dt> 12068 12069<dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)". 12070The <i>number</i> must be in the range 0..1 inclusive. This setting 12071may be removed in a future version. </dd> 12072 12073--> 12074 12075</dl> 12076 12077<p> A pseudo-cohort is the number of deliveries equal to a destination's 12078delivery concurrency. </p> 12079 12080<p> Use <i>transport</i>_destination_concurrency_negative_feedback 12081to specify a transport-specific override, where <i>transport</i> 12082is the master.cf 12083name of the message delivery transport. </p> 12084 12085<p> This feature is available in Postfix 2.5. The default setting 12086is compatible with earlier Postfix versions. </p> 12087 12088%PARAM default_destination_concurrency_positive_feedback 1 12089 12090<p> The per-destination amount of delivery concurrency positive 12091feedback, after a delivery completes without connection or handshake 12092failure. Feedback values are in the range 0..1 inclusive. The 12093concurrency increases until it reaches the per-destination maximal 12094concurrency limit. With positive feedback, concurrency is incremented 12095at the end of a sequence with length 1/feedback. This is unlike 12096negative feedback, where concurrency is decremented at the start 12097of a sequence of length 1/feedback. </p> 12098 12099<p> Specify one of the following forms: </p> 12100 12101<dl> 12102 12103<dt> <b><i>number</i> </b> </dt> 12104 12105<dt> <b><i>number</i> / <i>number</i> </b> </dt> 12106 12107<dd> Constant feedback. The value must be in the range 0..1 12108inclusive. The default setting of "1" is compatible with Postfix 12109versions before 2.5, where a destination's delivery concurrency 12110doubles after each successful pseudo-cohort. </dd> 12111 12112<dt> <b><i>number</i> / concurrency </b> </dt> 12113 12114<dd> Variable feedback of "<i>number</i> / (delivery concurrency)". 12115The <i>number</i> must be in the range 0..1 inclusive. With 12116<i>number</i> equal to "1", a destination's delivery concurrency 12117is incremented by 1 after each successful pseudo-cohort. </dd> 12118 12119<!-- 12120 12121<dt> <b><i>number</i> / sqrt_concurrency </b> </dt> 12122 12123<dd> Variable feedback of "<i>number</i> / sqrt(delivery concurrency)". 12124The <i>number</i> must be in the range 0..1 inclusive. This setting 12125may be removed in a future version. </dd> 12126 12127--> 12128 12129</dl> 12130 12131<p> A pseudo-cohort is the number of deliveries equal to a destination's 12132delivery concurrency. </p> 12133 12134<p> Use <i>transport</i>_destination_concurrency_positive_feedback 12135to specify a transport-specific override, where <i>transport</i> 12136is the master.cf name of the message delivery transport. </p> 12137 12138<p> This feature is available in Postfix 2.5 and later. </p> 12139 12140%PARAM transport_destination_concurrency_failed_cohort_limit $default_destination_concurrency_failed_cohort_limit 12141 12142<p> A transport-specific override for the 12143default_destination_concurrency_failed_cohort_limit parameter value, 12144where <i>transport</i> is the master.cf name of the message delivery 12145transport. </p> 12146 12147<p> Note: some <i>transport</i>_destination_concurrency_failed_cohort_limit 12148parameters will not show up in "postconf" command output before 12149Postfix version 2.9. This limitation applies to many parameters 12150whose name is a combination of a master.cf service name and a 12151built-in suffix (in this case: 12152"_destination_concurrency_failed_cohort_limit"). </p> 12153 12154<p> This feature is available in Postfix 2.5 and later. </p> 12155 12156%PARAM transport_destination_concurrency_positive_feedback $default_destination_concurrency_positive_feedback 12157 12158<p> A transport-specific override for the 12159default_destination_concurrency_positive_feedback parameter value, 12160where <i>transport</i> is the master.cf name of the message delivery 12161transport. </p> 12162 12163<p> Note: some <i>transport</i>_destination_concurrency_positive_feedback 12164parameters will not show up in "postconf" command output before 12165Postfix version 2.9. This limitation applies to many parameters 12166whose name is a combination of a master.cf service name and a 12167built-in suffix (in this case: 12168"_destination_concurrency_positive_feedback"). </p> 12169 12170<p> This feature is available in Postfix 2.5 and later. </p> 12171 12172%PARAM transport_destination_concurrency_negative_feedback $default_destination_concurrency_negative_feedback 12173 12174<p> A transport-specific override for the 12175default_destination_concurrency_negative_feedback parameter value, 12176where <i>transport</i> is the master.cf name of the message delivery 12177transport. </p> 12178 12179<p> Note: some <i>transport</i>_destination_concurrency_negative_feedback 12180parameters will not show up in "postconf" command output before 12181Postfix version 2.9. This limitation applies to many parameters 12182whose name is a combination of a master.cf service name and a 12183built-in suffix (in this case: 12184"_destination_concurrency_negative_feedback"). </p> 12185 12186<p> This feature is available in Postfix 2.5 and later. </p> 12187 12188%PARAM transport_initial_destination_concurrency $initial_destination_concurrency 12189 12190<p> A transport-specific override for the initial_destination_concurrency 12191parameter value, where <i>transport</i> is the master.cf name of 12192the message delivery transport. </p> 12193 12194<p> Note: some <i>transport</i>_initial_destination_concurrency 12195parameters will not show up in "postconf" command output before 12196Postfix version 2.9. This limitation applies to many parameters 12197whose name is a combination of a master.cf service name and a 12198built-in suffix (in this case: "_initial_destination_concurrency"). 12199</p> 12200 12201<p> This feature is available in Postfix 2.5 and later. </p> 12202 12203%PARAM transport_destination_concurrency_limit $default_destination_concurrency_limit 12204 12205<p> A transport-specific override for the 12206default_destination_concurrency_limit parameter value, where 12207<i>transport</i> is the master.cf name of the message delivery 12208transport. </p> 12209 12210<p> Note: some <i>transport</i>_destination_concurrency_limit 12211parameters will not show up in "postconf" command output before 12212Postfix version 2.9. This limitation applies to many parameters 12213whose name is a combination of a master.cf service name and a 12214built-in suffix (in this case: "_destination_concurrency_limit"). 12215</p> 12216 12217%PARAM transport_destination_recipient_limit $default_destination_recipient_limit 12218 12219<p> A transport-specific override for the 12220default_destination_recipient_limit parameter value, where 12221<i>transport</i> is the master.cf name of the message delivery 12222transport. </p> 12223 12224<p> Note: some <i>transport</i>_destination_recipient_limit parameters 12225will not show up in "postconf" command output before Postfix version 122262.9. This limitation applies to many parameters whose name is a 12227combination of a master.cf service name and a built-in suffix (in 12228this case: "_destination_recipient_limit"). </p> 12229 12230%PARAM transport_time_limit $command_time_limit 12231 12232<p> A transport-specific override for the command_time_limit parameter 12233value, where <i>transport</i> is the master.cf name of the message 12234delivery transport. </p> 12235 12236<p> Note: <i>transport</i>_time_limit parameters will not show up 12237in "postconf" command output before Postfix version 2.9. This 12238limitation applies to many parameters whose name is a combination 12239of a master.cf service name and a built-in suffix (in this case: 12240"_time_limit"). </p> 12241 12242%PARAM transport_delivery_slot_cost $default_delivery_slot_cost 12243 12244<p> A transport-specific override for the default_delivery_slot_cost 12245parameter value, where <i>transport</i> is the master.cf name of 12246the message delivery transport. </p> 12247 12248<p> Note: <i>transport</i>_delivery_slot_cost parameters will not 12249show up in "postconf" command output before Postfix version 2.9. 12250This limitation applies to many parameters whose name is a combination 12251of a master.cf service name and a built-in suffix (in this case: 12252"_delivery_slot_cost"). </p> 12253 12254%PARAM transport_delivery_slot_loan $default_delivery_slot_loan 12255 12256<p> A transport-specific override for the default_delivery_slot_loan 12257parameter value, where <i>transport</i> is the master.cf name of 12258the message delivery transport. </p> 12259 12260<p> Note: <i>transport</i>_delivery_slot_loan parameters will not 12261show up in "postconf" command output before Postfix version 2.9. 12262This limitation applies to many parameters whose name is a combination 12263of a master.cf service name and a built-in suffix (in this case: 12264"_delivery_slot_loan"). </p> 12265 12266%PARAM transport_delivery_slot_discount $default_delivery_slot_discount 12267 12268<p> A transport-specific override for the default_delivery_slot_discount 12269parameter value, where <i>transport</i> is the master.cf name of 12270the message delivery transport. </p> 12271 12272<p> Note: <i>transport</i>_delivery_slot_discount parameters will 12273not show up in "postconf" command output before Postfix version 122742.9. This limitation applies to many parameters whose name is a 12275combination of a master.cf service name and a built-in suffix (in 12276this case: "_delivery_slot_discount"). </p> 12277 12278%PARAM transport_minimum_delivery_slots $default_minimum_delivery_slots 12279 12280<p> A transport-specific override for the default_minimum_delivery_slots 12281parameter value, where <i>transport</i> is the master.cf name of 12282the message delivery transport. </p> 12283 12284<p> Note: <i>transport</i>_minimum_delivery_slots parameters will 12285not show up in "postconf" command output before Postfix version 122862.9. This limitation applies to many parameters whose name is a 12287combination of a master.cf service name and a built-in suffix (in 12288this case: "_minimum_delivery_slots"). </p> 12289 12290%PARAM transport_recipient_limit $default_recipient_limit 12291 12292<p> A transport-specific override for the default_recipient_limit 12293parameter value, where <i>transport</i> is the master.cf name of 12294the message delivery transport. </p> 12295 12296<p> Note: some <i>transport</i>_recipient_limit parameters will not 12297show up in "postconf" command output before Postfix version 2.9. 12298This limitation applies to many parameters whose name is a combination 12299of a master.cf service name and a built-in suffix (in this case: 12300"_recipient_limit"). </p> 12301 12302%PARAM transport_extra_recipient_limit $default_extra_recipient_limit 12303 12304<p> A transport-specific override for the default_extra_recipient_limit 12305parameter value, where <i>transport</i> is the master.cf name of 12306the message delivery transport. </p> 12307 12308<p> Note: <i>transport</i>_extra_recipient_limit parameters will 12309not show up in "postconf" command output before Postfix version 123102.9. This limitation applies to many parameters whose name is a 12311combination of a master.cf service name and a built-in suffix (in 12312this case: "_extra_recipient_limit"). </p> 12313 12314%PARAM transport_recipient_refill_limit $default_recipient_refill_limit 12315 12316<p> A transport-specific override for the default_recipient_refill_limit 12317parameter value, where <i>transport</i> is the master.cf name of 12318the message delivery transport. </p> 12319 12320<p> Note: <i>transport</i>_recipient_refill_limit parameters will 12321not show up in "postconf" command output before Postfix version 123222.9. This limitation applies to many parameters whose name is a 12323combination of a master.cf service name and a built-in suffix (in 12324this case: "_recipient_refill_limit"). </p> 12325 12326<p> This feature is available in Postfix 2.4 and later. </p> 12327 12328%PARAM transport_recipient_refill_delay $default_recipient_refill_delay 12329 12330<p> A transport-specific override for the default_recipient_refill_delay 12331parameter value, where <i>transport</i> is the master.cf name of 12332the message delivery transport. </p> 12333 12334<p> Note: <i>transport</i>_recipient_refill_delay parameters will 12335not show up in "postconf" command output before Postfix version 123362.9. This limitation applies to many parameters whose name is a 12337combination of a master.cf service name and a built-in suffix (in 12338this case: "_recipient_refill_delay"). </p> 12339 12340<p> This feature is available in Postfix 2.4 and later. </p> 12341 12342%PARAM default_destination_rate_delay 0s 12343 12344<p> The default amount of delay that is inserted between individual 12345deliveries to the same destination; with per-destination recipient 12346limit > 1, a destination is a domain, otherwise it is a recipient. 12347</p> 12348 12349<p> To enable the delay, specify a non-zero time value (an integral 12350value plus an optional one-letter suffix that specifies the time 12351unit). </p> 12352 12353<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 12354(weeks). The default time unit is s (seconds). </p> 12355 12356<p> NOTE: the delay is enforced by the queue manager. The delay 12357timer state does not survive "<b>postfix reload</b>" or "<b>postfix 12358stop</b>". 12359</p> 12360 12361<p> Use <i>transport</i>_destination_rate_delay to specify a 12362transport-specific override, where <i>transport</i> is the master.cf 12363name of the message delivery transport. 12364</p> 12365 12366<p> NOTE: with a non-zero _destination_rate_delay, specify a 12367<i>transport</i>_destination_concurrency_failed_cohort_limit of 10 12368or more to prevent Postfix from deferring all mail for the same 12369destination after only one connection or handshake error. </p> 12370 12371<p> This feature is available in Postfix 2.5 and later. </p> 12372 12373%PARAM transport_destination_rate_delay $default_destination_rate_delay 12374 12375<p> A transport-specific override for the default_destination_rate_delay 12376parameter value, where <i>transport</i> is the master.cf name of 12377the message delivery transport. </p> 12378 12379<p> Note: some <i>transport</i>_destination_rate_delay parameters 12380will not show up in "postconf" command output before Postfix version 123812.9. This limitation applies to many parameters whose name is a 12382combination of a master.cf service name and a built-in suffix (in 12383this case: "_destination_rate_delay"). </p> 12384 12385<p> This feature is available in Postfix 2.5 and later. </p> 12386 12387%PARAM data_directory see "postconf -d" output 12388 12389<p> The directory with Postfix-writable data files (for example: 12390caches, pseudo-random numbers). This directory must be owned by 12391the mail_owner account, and must not be shared with non-Postfix 12392software. </p> 12393 12394<p> This feature is available in Postfix 2.5 and later. </p> 12395 12396%PARAM stress 12397 12398<p> This feature is documented in the STRESS_README document. </p> 12399 12400<p> This feature is available in Postfix 2.5 and later. </p> 12401 12402%PARAM smtp_sasl_auth_soft_bounce yes 12403 12404<p> When a remote SMTP server rejects a SASL authentication request 12405with a 535 reply code, defer mail delivery instead of returning 12406mail as undeliverable. The latter behavior was hard-coded prior to 12407Postfix version 2.5. </p> 12408 12409<p> Note: the setting "yes" overrides the global soft_bounce 12410parameter, but the setting "no" does not. </p> 12411 12412<p> Example: </p> 12413 12414<pre> 12415# Default as of Postfix 2.5 12416smtp_sasl_auth_soft_bounce = yes 12417# The old hard-coded default 12418smtp_sasl_auth_soft_bounce = no 12419</pre> 12420 12421<p> This feature is available in Postfix 2.5 and later. </p> 12422 12423%PARAM smtp_sasl_auth_cache_name 12424 12425<p> An optional table to prevent repeated SASL authentication 12426failures with the same remote SMTP server hostname, username and 12427password. Each table (key, value) pair contains a server name, a 12428username and password, and the full server response. This information 12429is stored when a remote SMTP server rejects an authentication attempt 12430with a 535 reply code. As long as the smtp_sasl_password_maps 12431information does no change, and as long as the smtp_sasl_auth_cache_name 12432information does not expire (see smtp_sasl_auth_cache_time) the 12433Postfix SMTP client avoids SASL authentication attempts with the 12434same server, username and password, and instead bounces or defers 12435mail as controlled with the smtp_sasl_auth_soft_bounce configuration 12436parameter. </p> 12437 12438<p> Use a per-destination delivery concurrency of 1 (for example, 12439"smtp_destination_concurrency_limit = 1", 12440"relay_destination_concurrency_limit = 1", etc.), otherwise multiple 12441delivery agents may experience a login failure at the same time. 12442</p> 12443 12444<p> The table must be accessed via the proxywrite service, i.e. the 12445map name must start with "proxy:". The table should be stored under 12446the directory specified with the data_directory parameter. </p> 12447 12448<p> This feature uses cryptographic hashing to protect plain-text 12449passwords, and requires that Postfix is compiled with TLS support. 12450</p> 12451 12452<p> Example: </p> 12453 12454<pre> 12455smtp_sasl_auth_cache_name = proxy:btree:/var/db/postfix/sasl_auth_cache 12456</pre> 12457 12458<p> This feature is available in Postfix 2.5 and later. </p> 12459 12460%PARAM smtp_sasl_auth_cache_time 90d 12461 12462<p> The maximal age of an smtp_sasl_auth_cache_name entry before it 12463is removed. </p> 12464 12465<p> This feature is available in Postfix 2.5 and later. </p> 12466 12467%PARAM lmtp_sasl_auth_soft_bounce yes 12468 12469<p> The LMTP-specific version of the smtp_sasl_auth_soft_bounce 12470configuration parameter. See there for details. </p> 12471 12472<p> This feature is available in Postfix 2.5 and later. </p> 12473 12474%PARAM lmtp_sasl_auth_cache_name 12475 12476<p> The LMTP-specific version of the smtp_sasl_auth_cache_name 12477configuration parameter. See there for details. </p> 12478 12479<p> This feature is available in Postfix 2.5 and later. </p> 12480 12481%PARAM lmtp_sasl_auth_cache_time 90d 12482 12483<p> The LMTP-specific version of the smtp_sasl_auth_cache_time 12484configuration parameter. See there for details. </p> 12485 12486<p> This feature is available in Postfix 2.5 and later. </p> 12487 12488%PARAM unverified_sender_reject_reason 12489 12490<p> The Postfix SMTP server's reply when rejecting mail with 12491reject_unverified_sender. Do not include the numeric SMTP reply 12492code or the enhanced status code. By default, the response includes 12493actual address verification details. 12494 12495<p> Example: </p> 12496 12497<pre> 12498unverified_sender_reject_reason = Sender address lookup failed 12499</pre> 12500 12501<p> This feature is available in Postfix 2.6 and later. </p> 12502 12503%PARAM unverified_recipient_reject_reason 12504 12505<p> The Postfix SMTP server's reply when rejecting mail with 12506reject_unverified_recipient. Do not include the numeric SMTP reply 12507code or the enhanced status code. By default, the response includes 12508actual address verification details. 12509 12510<p> Example: </p> 12511 12512<pre> 12513unverified_recipient_reject_reason = Recipient address lookup failed 12514</pre> 12515 12516<p> This feature is available in Postfix 2.6 and later. </p> 12517 12518%PARAM strict_mailbox_ownership yes 12519 12520<p> Defer delivery when a mailbox file is not owned by its recipient. 12521The default setting is not backwards compatible. </p> 12522 12523<p> This feature is available in Postfix 2.5.3 and later. </p> 12524 12525%PARAM proxymap_service_name proxymap 12526 12527<p> The name of the proxymap read-only table lookup service. This 12528service is normally implemented by the proxymap(8) daemon. </p> 12529 12530<p> This feature is available in Postfix 2.6 and later. </p> 12531 12532%PARAM proxywrite_service_name proxywrite 12533 12534<p> The name of the proxywrite read-write table lookup service. 12535This service is normally implemented by the proxymap(8) daemon. 12536</p> 12537 12538<p> This feature is available in Postfix 2.6 and later. </p> 12539 12540%PARAM master_service_disable 12541 12542<p> Selectively disable master(8) listener ports by service type 12543or by service name and type. Specify a list of service types 12544("inet", "unix", "fifo", or "pass") or "name.type" tuples, where 12545"name" is the first field of a master.cf entry and "type" is a 12546service type. As with other Postfix matchlists, a search stops at 12547the first match. Specify "!pattern" to exclude a service from the 12548list. By default, all master(8) listener ports are enabled. </p> 12549 12550<p> Note: this feature does not support "/file/name" or "type:table" 12551patterns, nor does it support wildcards such as "*" or "all". This 12552is intentional. </p> 12553 12554<p> Examples: </p> 12555 12556<pre> 12557# Turn on all master(8) listener ports (the default). 12558master_service_disable = 12559# Turn off only the main SMTP listener port. 12560master_service_disable = smtp.inet 12561# Turn off all TCP/IP listener ports. 12562master_service_disable = inet 12563# Turn off all TCP/IP listener ports except "foo". 12564master_service_disable = !foo.inet, inet 12565</pre> 12566 12567<p> This feature is available in Postfix 2.6 and later. </p> 12568 12569%PARAM tcp_windowsize 0 12570 12571<p> An optional workaround for routers that break TCP window scaling. 12572Specify a value > 0 and < 65536 to enable this feature. With 12573Postfix TCP servers (smtpd(8), qmqpd(8)), this feature is implemented 12574by the Postfix master(8) daemon. </p> 12575 12576<p> To change this parameter without stopping Postfix, you need to 12577first terminate all Postfix TCP servers: </p> 12578 12579<blockquote> 12580<pre> 12581# postconf -e master_service_disable=inet 12582# postfix reload 12583</pre> 12584</blockquote> 12585 12586<p> This immediately terminates all processes that accept network 12587connections. Next, you enable Postfix TCP servers with the updated 12588tcp_windowsize setting: </p> 12589 12590<blockquote> 12591<pre> 12592# postconf -e tcp_windowsize=65535 master_service_disable= 12593# postfix reload 12594</pre> 12595</blockquote> 12596 12597<p> If you skip these steps with a running Postfix system, then the 12598tcp_windowsize change will work only for Postfix TCP clients (smtp(8), 12599lmtp(8)). </p> 12600 12601<p> This feature is available in Postfix 2.6 and later. </p> 12602 12603%PARAM multi_instance_directories 12604 12605<p> An optional list of non-default Postfix configuration directories; 12606these directories belong to additional Postfix instances that share 12607the Postfix executable files and documentation with the default 12608Postfix instance, and that are started, stopped, etc., together 12609with the default Postfix instance. Specify a list of pathnames 12610separated by comma or whitespace. </p> 12611 12612<p> When $multi_instance_directories is empty, the postfix(1) command 12613runs in single-instance mode and operates on a single Postfix 12614instance only. Otherwise, the postfix(1) command runs in multi-instance 12615mode and invokes the multi-instance manager specified with the 12616multi_instance_wrapper parameter. The multi-instance manager in 12617turn executes postfix(1) commands for the default instance and for 12618all Postfix instances in $multi_instance_directories. </p> 12619 12620<p> Currently, this parameter setting is ignored except for the 12621default main.cf file. </p> 12622 12623<p> This feature is available in Postfix 2.6 and later. </p> 12624 12625%PARAM multi_instance_wrapper 12626 12627<p> The pathname of a multi-instance manager command that the 12628postfix(1) command invokes when the multi_instance_directories 12629parameter value is non-empty. The pathname may be followed by 12630initial command arguments separated by whitespace; shell 12631metacharacters such as quotes are not supported in this context. 12632</p> 12633 12634<p> The postfix(1) command invokes the manager command with the 12635postfix(1) non-option command arguments on the manager command line, 12636and with all installation configuration parameters exported into 12637the manager command process environment. The manager command in 12638turn invokes the postfix(1) command for individual Postfix instances 12639as "postfix -c <i>config_directory</i> <i>command</i>". </p> 12640 12641<p> This feature is available in Postfix 2.6 and later. </p> 12642 12643%PARAM multi_instance_group 12644 12645<p> The optional instance group name of this Postfix instance. A 12646group identifies closely-related Postfix instances that the 12647multi-instance manager can start, stop, etc., as a unit. This 12648parameter is reserved for the multi-instance manager. </p> 12649 12650<p> This feature is available in Postfix 2.6 and later. </p> 12651 12652%PARAM multi_instance_name 12653 12654<p> The optional instance name of this Postfix instance. This name 12655becomes also the default value for the syslog_name parameter. </p> 12656 12657<p> This feature is available in Postfix 2.6 and later. </p> 12658 12659%PARAM multi_instance_enable no 12660 12661<p> Allow this Postfix instance to be started, stopped, etc., by a 12662multi-instance manager. By default, new instances are created in 12663a safe state that prevents them from being started inadvertently. 12664This parameter is reserved for the multi-instance manager. </p> 12665 12666<p> This feature is available in Postfix 2.6 and later. </p> 12667 12668%PARAM reject_tempfail_action defer_if_permit 12669 12670<p> The Postfix SMTP server's action when a reject-type restriction 12671fails due to a temporary error condition. Specify "defer" to defer 12672the remote SMTP client request immediately. With the default 12673"defer_if_permit" action, the Postfix SMTP server continues to look 12674for opportunities to reject mail, and defers the client request 12675only if it would otherwise be accepted. </p> 12676 12677<p> For finer control, see: unverified_recipient_tempfail_action, 12678unverified_sender_tempfail_action, unknown_address_tempfail_action, 12679and unknown_helo_hostname_tempfail_action. </p> 12680 12681<p> This feature is available in Postfix 2.6 and later. </p> 12682 12683%PARAM unverified_recipient_tempfail_action $reject_tempfail_action 12684 12685<p> The Postfix SMTP server's action when reject_unverified_recipient 12686fails due to a temporary error condition. Specify "defer" to defer 12687the remote SMTP client request immediately. With the default 12688"defer_if_permit" action, the Postfix SMTP server continues to look 12689for opportunities to reject mail, and defers the client request 12690only if it would otherwise be accepted. </p> 12691 12692<p> This feature is available in Postfix 2.6 and later. </p> 12693 12694%PARAM unverified_sender_tempfail_action $reject_tempfail_action 12695 12696<p> The Postfix SMTP server's action when reject_unverified_sender 12697fails due to a temporary error condition. Specify "defer" to defer 12698the remote SMTP client request immediately. With the default 12699"defer_if_permit" action, the Postfix SMTP server continues to look 12700for opportunities to reject mail, and defers the client request 12701only if it would otherwise be accepted. </p> 12702 12703<p> This feature is available in Postfix 2.6 and later. </p> 12704 12705%PARAM unknown_address_tempfail_action $reject_tempfail_action 12706 12707<p> The Postfix SMTP server's action when reject_unknown_sender_domain 12708or reject_unknown_recipient_domain fail due to a temporary error 12709condition. Specify "defer" to defer the remote SMTP client request 12710immediately. With the default "defer_if_permit" action, the Postfix 12711SMTP server continues to look for opportunities to reject mail, and 12712defers the client request only if it would otherwise be accepted. 12713</p> 12714 12715<p> This feature is available in Postfix 2.6 and later. </p> 12716 12717%PARAM unknown_helo_hostname_tempfail_action $reject_tempfail_action 12718 12719<p> The Postfix SMTP server's action when reject_unknown_helo_hostname 12720fails due to an temporary error condition. Specify "defer" to defer 12721the remote SMTP client request immediately. With the default 12722"defer_if_permit" action, the Postfix SMTP server continues to look 12723for opportunities to reject mail, and defers the client request 12724only if it would otherwise be accepted. </p> 12725 12726<p> This feature is available in Postfix 2.6 and later. </p> 12727 12728%PARAM postmulti_start_commands start 12729 12730<p> The postfix(1) commands that the postmulti(1) instance manager treats 12731as "start" commands. For these commands, disabled instances are "checked" 12732rather than "started", and failure to "start" a member instance of an 12733instance group will abort the start-up of later instances. </p> 12734 12735<p> This feature is available in Postfix 2.6 and later. </p> 12736 12737%PARAM postmulti_stop_commands see "postconf -d" output 12738 12739<p> The postfix(1) commands that the postmulti(1) instance manager treats 12740as "stop" commands. For these commands, disabled instances are skipped, 12741and enabled instances are processed in reverse order. </p> 12742 12743<p> This feature is available in Postfix 2.6 and later. </p> 12744 12745%PARAM postmulti_control_commands reload flush 12746 12747<p> The postfix(1) commands that the postmulti(1) instance manager 12748treats as "control" commands, that operate on running instances. For 12749these commands, disabled instances are skipped. </p> 12750 12751<p> This feature is available in Postfix 2.6 and later. </p> 12752 12753%PARAM lmtp_assume_final no 12754 12755<p> When a remote LMTP server announces no DSN support, assume that 12756the 12757server performs final delivery, and send "delivered" delivery status 12758notifications instead of "relayed". The default setting is backwards 12759compatible to avoid the infinetisimal possibility of breaking 12760existing LMTP-based content filters. </p> 12761 12762%PARAM always_add_missing_headers no 12763 12764<p> Always add (Resent-) From:, To:, Date: or Message-ID: headers 12765when not present. Postfix 2.6 and later add these headers only 12766when clients match the local_header_rewrite_clients parameter 12767setting. Earlier Postfix versions always add these headers; this 12768may break DKIM signatures that cover non-existent headers. </p> 12769 12770%PARAM lmtp_header_checks 12771 12772<p> The LMTP-specific version of the smtp_header_checks configuration 12773parameter. See there for details. </p> 12774 12775<p> This feature is available in Postfix 2.5 and later. </p> 12776 12777%PARAM lmtp_mime_header_checks 12778 12779<p> The LMTP-specific version of the smtp_mime_header_checks 12780configuration parameter. See there for details. </p> 12781 12782<p> This feature is available in Postfix 2.5 and later. </p> 12783 12784%PARAM lmtp_nested_header_checks 12785 12786<p> The LMTP-specific version of the smtp_nested_header_checks 12787configuration parameter. See there for details. </p> 12788 12789<p> This feature is available in Postfix 2.5 and later. </p> 12790 12791%PARAM lmtp_body_checks 12792 12793<p> The LMTP-specific version of the smtp_body_checks configuration 12794parameter. See there for details. </p> 12795 12796<p> This feature is available in Postfix 2.5 and later. </p> 12797 12798%PARAM milter_header_checks 12799 12800<p> Optional lookup tables for content inspection of message headers 12801that are produced by Milter applications. See the header_checks(5) 12802manual page available actions. Currently, PREPEND is not implemented. 12803</p> 12804 12805<p> The following example sends all mail that is marked as SPAM to 12806a spam handling machine. Note that matches are case-insensitive 12807by default. </p> 12808 12809<pre> 12810/etc/postfix/main.cf: 12811 milter_header_checks = pcre:/etc/postfix/milter_header_checks 12812</pre> 12813 12814<pre> 12815/etc/postfix/milter_header_checks: 12816 /^X-SPAM-FLAG:\s+YES/ FILTER mysmtp:sanitizer.example.com:25 12817</pre> 12818 12819<p> The milter_header_checks mechanism could also be used for 12820whitelisting. For example it could be used to skip heavy content 12821inspection for DKIM-signed mail from known friendly domains. </p> 12822 12823<p> This feature is available in Postfix 2.7, and as an optional 12824patch for Postfix 2.6. </p> 12825 12826%PARAM postscreen_cache_map btree:$data_directory/postscreen_cache 12827 12828<p> Persistent storage for the postscreen(8) server decisions. </p> 12829 12830<p> To share a postscreen(8) cache between multiple postscreen(8) 12831instances, use "postscreen_cache_map = proxy:btree:/path/to/file". 12832This requires Postfix version 2.9 or later; earlier proxymap(8) 12833implementations don't support cache cleanup. For an alternative 12834approach see the memcache_table(5) manpage. </p> 12835 12836<p> This feature is available in Postfix 2.8. </p> 12837 12838%PARAM smtpd_service_name smtpd 12839 12840<p> The internal service that postscreen(8) hands off allowed 12841connections to. In a future version there may be different 12842classes of SMTP service. </p> 12843 12844<p> This feature is available in Postfix 2.8. </p> 12845 12846%PARAM postscreen_post_queue_limit $default_process_limit 12847 12848<p> The number of clients that can be waiting for service from a 12849real Postfix SMTP server process. When this queue is full, all 12850clients will 12851receive a 421 reponse. </p> 12852 12853<p> This feature is available in Postfix 2.8. </p> 12854 12855%PARAM postscreen_pre_queue_limit $default_process_limit 12856 12857<p> The number of non-whitelisted clients that can be waiting for 12858a decision whether they will receive service from a real Postfix 12859SMTP server 12860process. When this queue is full, all non-whitelisted clients will 12861receive a 421 reponse. </p> 12862 12863<p> This feature is available in Postfix 2.8. </p> 12864 12865%PARAM postscreen_greet_ttl 1d 12866 12867<p> The amount of time that postscreen(8) will use the result from 12868a successful PREGREET test. During this time, the client IP address 12869is excluded from this test. The default is relatively short, because 12870a good client can immediately talk to a real Postfix SMTP server. </p> 12871 12872<p> Specify a non-zero time value (an integral value plus an optional 12873one-letter suffix that specifies the time unit). Time units: s 12874(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 12875 12876<p> This feature is available in Postfix 2.8. </p> 12877 12878%PARAM postscreen_cache_retention_time 7d 12879 12880<p> The amount of time that postscreen(8) will cache an expired 12881temporary whitelist entry before it is removed. This prevents clients 12882from being logged as "NEW" just because their cache entry expired 12883an hour ago. It also prevents the cache from filling up with clients 12884that passed some deep protocol test once and never came back. </p> 12885 12886<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 12887(weeks). </p> 12888 12889<p> This feature is available in Postfix 2.8. </p> 12890 12891%PARAM postscreen_cache_cleanup_interval 12h 12892 12893<p> The amount of time between postscreen(8) cache cleanup runs. 12894Cache cleanup increases the load on the cache database and should 12895therefore not be run frequently. This feature requires that the 12896cache database supports the "delete" and "sequence" operators. 12897Specify a zero interval to disable cache cleanup. </p> 12898 12899<p> After each cache cleanup run, the postscreen(8) daemon logs the 12900number of entries that were retained and dropped. A cleanup run is 12901logged as "partial" when the daemon terminates early after "<b>postfix 12902reload</b>", "<b>postfix stop</b>", or no requests for $max_idle 12903seconds. </p> 12904 12905<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 12906(weeks). </p> 12907 12908<p> This feature is available in Postfix 2.8. </p> 12909 12910%PARAM postscreen_greet_wait ${stress?2}${stress:6}s 12911 12912<p> The amount of time that postscreen(8) will wait for an SMTP 12913client to send a command before its turn, and for DNS blocklist 12914lookup results to arrive (default: up to 2 seconds under stress, 12915up to 6 seconds otherwise). <p> 12916 12917<p> Specify a non-zero time value (an integral value plus an optional 12918one-letter suffix that specifies the time unit). </p> 12919 12920<p> Time units: s (seconds), m (minutes), h (hours), d (days), w 12921(weeks). </p> 12922 12923<p> This feature is available in Postfix 2.8. </p> 12924 12925%PARAM postscreen_dnsbl_sites 12926 12927<p>Optional list of DNS white/blacklist domains, filters and weight 12928factors. When the list is non-empty, the dnsblog(8) daemon will 12929query these domains with the IP addresses of remote SMTP clients, 12930and postscreen(8) will update an SMTP client's DNSBL score with 12931each non-error reply. </p> 12932 12933<p> Caution: when postscreen rejects mail, it replies with the DNSBL 12934domain name. Use the postscreen_dnsbl_reply_map feature to hide 12935"password" information in DNSBL domain names. </p> 12936 12937<p> When a client's score is equal to or greater than the threshold 12938specified with postscreen_dnsbl_threshold, postscreen(8) can drop 12939the connection with the remote SMTP client. </p> 12940 12941<p> Specify a list of domain=filter*weight entries, separated by 12942comma or whitespace. </p> 12943 12944<ul> 12945 12946<li> <p> When no "=filter" is specified, postscreen(8) will use any 12947non-error DNSBL reply. Otherwise, postscreen(8) uses only DNSBL 12948replies that match the filter. The filter has the form d.d.d.d, 12949where each d is a number, or a pattern inside [] that contains one 12950or more ";"-separated numbers or number..number ranges. </p> 12951 12952<li> <p> When no "*weight" is specified, postscreen(8) increments 12953the remote SMTP client's DNSBL score by 1. Otherwise, the weight must be 12954an integral number, and postscreen(8) adds the specified weight to 12955the remote SMTP client's DNSBL score. Specify a negative number for 12956whitelisting. </p> 12957 12958<li> <p> When one postscreen_dnsbl_sites entry produces multiple 12959DNSBL responses, postscreen(8) applies the weight at most once. 12960</p> 12961 12962</ul> 12963 12964<p> Examples: </p> 12965 12966<p> To use example.com as a high-confidence blocklist, and to 12967block mail with example.net and example.org only when both agree: 12968</p> 12969 12970<pre> 12971postscreen_dnsbl_threshold = 2 12972postscreen_dnsbl_sites = example.com*2, example.net, example.org 12973</pre> 12974 12975<p> To filter only DNSBL replies containing 127.0.0.4: </p> 12976 12977<pre> 12978postscreen_dnsbl_sites = example.com=127.0.0.4 12979</pre> 12980 12981<p> This feature is available in Postfix 2.8. </p> 12982 12983%PARAM postscreen_dnsbl_action ignore 12984 12985<p>The action that postscreen(8) takes when a remote SMTP client's combined 12986DNSBL score is equal to or greater than a threshold (as defined 12987with the postscreen_dnsbl_sites and postscreen_dnsbl_threshold 12988parameters). Specify one of the following: </p> 12989 12990<dl> 12991 12992<dt> <b>ignore</b> (default) </dt> 12993 12994<dd> Ignore the failure of this test. Allow other tests to complete. 12995Repeat this test the next time the client connects. 12996This option is useful for testing and collecting statistics 12997without blocking mail. </dd> 12998 12999<dt> <b>enforce</b> </dt> 13000 13001<dd> Allow other tests to complete. Reject attempts to deliver mail 13002with a 550 SMTP reply, and log the helo/sender/recipient information. 13003Repeat this test the next time the client connects. </dd> 13004 13005<dt> <b>drop</b> </dt> 13006 13007<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13008this test the next time the client connects. </dd> 13009 13010</dl> 13011 13012<p> This feature is available in Postfix 2.8. </p> 13013 13014%PARAM postscreen_greet_action ignore 13015 13016<p>The action that postscreen(8) takes when a remote SMTP client speaks 13017before its turn within the time specified with the postscreen_greet_wait 13018parameter. Specify one of the following: </p> 13019 13020<dl> 13021 13022<dt> <b>ignore</b> (default) </dt> 13023 13024<dd> Ignore the failure of this test. Allow other tests to complete. 13025Repeat this test the next time the client connects. 13026This option is useful for testing and collecting statistics 13027without blocking mail. </dd> 13028 13029<dt> <b>enforce</b> </dt> 13030 13031<dd> Allow other tests to complete. Reject attempts to deliver mail 13032with a 550 SMTP reply, and log the helo/sender/recipient information. 13033Repeat this test the next time the client connects. </dd> 13034 13035<dt> <b>drop</b> </dt> 13036 13037<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13038this test the next time the client connects. </dd> 13039 13040</dl> 13041 13042<p> In either case, postscreen(8) will not whitelist the remote SMTP client 13043IP address. </p> 13044 13045<p> This feature is available in Postfix 2.8. </p> 13046 13047#%PARAM postscreen_whitelist_networks $mynetworks 13048# 13049#<p> Network addresses that are permanently whitelisted, and that 13050#will not be subjected to postscreen(8) checks. This parameter uses 13051#the same address syntax as the mynetworks parameter. This feature 13052#never uses the remote SMTP client hostname. </p> 13053# 13054#<p> This feature is available in Postfix 2.8. </p> 13055# 13056#%PARAM postscreen_blacklist_networks 13057# 13058#<p> Network addresses that are permanently blacklisted; see the 13059#postscreen_blacklist_action parameter for possible actions. This 13060#parameter uses the same address syntax as the mynetworks parameter. 13061#The blacklist has higher precedence than whitelists. This feature 13062#never uses the remote SMTP client hostname. </p> 13063# 13064#<p> This feature is available in Postfix 2.8. </p> 13065 13066%PARAM postscreen_access_list permit_mynetworks 13067 13068<p> Permanent white/blacklist for remote SMTP client IP addresses. 13069postscreen(8) searches this list immediately after a remote SMTP 13070client connects. Specify a comma- or whitespace-separated list of 13071commands (in upper or lower case) or lookup tables. The search stops 13072upon the first command that fires for the client IP address. </p> 13073 13074<dl> 13075 13076<dt> <b> permit_mynetworks </b> </dt> <dd> Whitelist the client and 13077terminate the search if the client IP address matches $mynetworks. 13078Do not subject the client to any before/after 220 greeting tests. 13079Pass the connection immediately to a Postfix SMTP server process. 13080</dd> 13081 13082<dt> <b> type:table </b> </dt> <dd> Query the specified lookup 13083table. Each table lookup result is an access list, except that 13084access lists inside a table cannot specify type:table entries. <br> 13085To discourage the use of hash, btree, etc. tables, there is no 13086support for substring matching like smtpd(8). Use CIDR tables 13087instead. </dd> 13088 13089<dt> <b> permit </b> </dt> <dd> Whitelist the client and terminate 13090the search. Do not subject the client to any before/after 220 13091greeting tests. Pass the connection immediately to a Postfix SMTP 13092server process. </dd> 13093 13094<dt> <b> reject </b> </dt> <dd> Blacklist the client and terminate 13095the search. Subject the client to the action configured with the 13096postscreen_blacklist_action configuration parameter. </dd> 13097 13098<dt> <b> dunno </b> </dt> <dd> All postscreen(8) access lists 13099implicitly have this command at the end. <br> When <b> dunno </b> 13100is executed inside a lookup table, return from the lookup table and 13101evaluate the next command. <br> When <b> dunno </b> is executed 13102outside a lookup table, terminate the search, and subject the client 13103to the configured before/after 220 greeting tests. </dd> 13104 13105</dl> 13106 13107<p> Example: </p> 13108 13109<pre> 13110/etc/postfix/main.cf: 13111 postscreen_access_list = permit_mynetworks, 13112 cidr:/etc/postfix/postscreen_access.cidr 13113 postscreen_blacklist_action = enforce 13114</pre> 13115 13116<pre> 13117/etc/postfix/postscreen_access.cidr: 13118 # Rules are evaluated in the order as specified. 13119 # Blacklist 192.168.* except 192.168.0.1. 13120 192.168.0.1 dunno 13121 192.168.0.0/16 reject 13122</pre> 13123 13124<p> This feature is available in Postfix 2.8. </p> 13125 13126%PARAM postscreen_greet_banner $smtpd_banner 13127 13128<p> The <i>text</i> in the optional "220-<i>text</i>..." server 13129response that 13130postscreen(8) sends ahead of the real Postfix SMTP server's "220 13131text..." response, in an attempt to confuse bad SMTP clients so 13132that they speak before their turn (pre-greet). Specify an empty 13133value to disable this feature. </p> 13134 13135<p> This feature is available in Postfix 2.8. </p> 13136 13137%PARAM postscreen_blacklist_action ignore 13138 13139<p> The action that postscreen(8) takes when a remote SMTP client is 13140permanently blacklisted with the postscreen_access_list parameter. 13141Specify one of the following: </p> 13142 13143<dl> 13144 13145<dt> <b>ignore</b> (default) </dt> 13146 13147<dd> Ignore this result. Allow other tests to complete. Repeat 13148this test the next time the client connects. 13149This option is useful for testing and collecting statistics 13150without blocking mail. </dd> 13151 13152<dt> <b>enforce</b> </dt> 13153 13154<dd> Allow other tests to complete. Reject attempts to deliver mail 13155with a 550 SMTP reply, and log the helo/sender/recipient information. 13156Repeat this test the next time the client connects. </dd> 13157 13158<dt> <b>drop</b> </dt> 13159 13160<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13161this test the next time the client connects. </dd> 13162 13163</dl> 13164 13165<p> This feature is available in Postfix 2.8. </p> 13166 13167%PARAM smtpd_command_filter 13168 13169<p> A mechanism to transform commands from remote SMTP clients. 13170This is a last-resort tool to work around client commands that break 13171inter-operability with the Postfix SMTP server. Other uses involve 13172fault injection to test Postfix's handling of invalid commands. 13173</p> 13174 13175<p> Specify the name of a "type:table" lookup table. The search 13176string is the SMTP command as received from the remote SMTP client, 13177except that initial whitespace and the trailing <CR><LF> 13178are removed. The result value is executed by the Postfix SMTP 13179server. </p> 13180 13181<p> There is no need to use smtpd_command_filter for the following 13182cases: </p> 13183 13184<ul> 13185 13186<li> <p> Use "resolve_numeric_domain = yes" to accept 13187"<i>user@ipaddress</i>". </p> 13188 13189<li> <p> Postfix already accepts the correct form 13190"<i>user@[ipaddress]</i>". Use virtual_alias_maps or canonical_maps 13191to translate these into domain names if necessary. </p> 13192 13193<li> <p> Use "strict_rfc821_envelopes = no" to accept "RCPT TO:<<i>User 13194Name <user@example.com>></i>". Postfix will ignore the "<i>User 13195Name</i>" part and deliver to the <i><user@example.com></i> address. 13196</p> 13197 13198</ul> 13199 13200<p> Examples of problems that can be solved with the smtpd_command_filter 13201feature: </p> 13202 13203<pre> 13204/etc/postfix/main.cf: 13205 smtpd_command_filter = pcre:/etc/postfix/command_filter 13206</pre> 13207 13208<pre> 13209/etc/postfix/command_filter: 13210 # Work around clients that send malformed HELO commands. 13211 /^HELO\s*$/ HELO domain.invalid 13212</pre> 13213 13214<pre> 13215 # Work around clients that send empty lines. 13216 /^\s*$/ NOOP 13217</pre> 13218 13219<pre> 13220 # Work around clients that send RCPT TO:<'user@domain'>. 13221 # WARNING: do not lose the parameters that follow the address. 13222 /^RCPT\s+TO:\s*<'([^[:space:]]+)'>(.*)/ RCPT TO:<$1>$2 13223</pre> 13224 13225<pre> 13226 # Append XVERP to MAIL FROM commands to request VERP-style delivery. 13227 # See VERP_README for more information on how to use Postfix VERP. 13228 /^(MAIL FROM:<listname@example\.com>.*)/ $1 XVERP 13229</pre> 13230 13231<pre> 13232 # Bounce-never mail sink. Use notify_classes=bounce,resource,software 13233 # to send bounced mail to the postmaster (with message body removed). 13234 /^(RCPT\s+TO:.*?)\bNOTIFY=\S+\b(.*)/ $1 NOTIFY=NEVER $2 13235 /^(RCPT\s+TO:.*)/ $1 NOTIFY=NEVER 13236</pre> 13237 13238<p> This feature is available in Postfix 2.7. </p> 13239 13240%PARAM smtp_reply_filter 13241 13242<p> A mechanism to transform replies from remote SMTP servers one 13243line at a time. This is a last-resort tool to work around server 13244replies that break inter-operability with the Postfix SMTP client. 13245Other uses involve fault injection to test Postfix's handling of 13246invalid responses. </p> 13247 13248<p> Notes: </p> 13249 13250<ul> 13251 13252<li> <p> In the case of a multi-line reply, the Postfix SMTP client 13253uses the final reply line's numerical SMTP reply code and enhanced 13254status code. </p> 13255 13256<li> <p> The numerical SMTP reply code (XYZ) takes precedence over 13257the enhanced status code (X.Y.Z). When the enhanced status code 13258initial digit differs from the SMTP reply code initial digit, or 13259when no enhanced status code is present, the Postfix SMTP client 13260uses a generic enhanced status code (X.0.0) instead. </p> 13261 13262</ul> 13263 13264<p> Specify the name of a "type:table" lookup table. The search 13265string is a single SMTP reply line as received from the remote SMTP 13266server, except that the trailing <CR><LF> are removed. 13267When the lookup succeeds, the result replaces the single SMTP reply 13268line. </p> 13269 13270<p> Examples: </p> 13271 13272<pre> 13273/etc/postfix/main.cf: 13274 smtp_reply_filter = pcre:/etc/postfix/reply_filter 13275</pre> 13276 13277<pre> 13278/etc/postfix/reply_filter: 13279 # Transform garbage into "250-filler..." so that it looks like 13280 # one line from a multi-line reply. It does not matter what we 13281 # substitute here as long it has the right syntax. The Postfix 13282 # SMTP client will use the final line's numerical SMTP reply 13283 # code and enhanced status code. 13284 !/^([2-5][0-9][0-9]($|[- ]))/ 250-filler for garbage 13285</pre> 13286 13287<p> This feature is available in Postfix 2.7. </p> 13288 13289%PARAM lmtp_reply_filter 13290 13291<p> The LMTP-specific version of the smtp_reply_filter 13292configuration parameter. See there for details. </p> 13293 13294<p> This feature is available in Postfix 2.7 and later. </p> 13295 13296%PARAM smtp_tls_block_early_mail_reply no 13297 13298<p> Try to detect a mail hijacking attack based on a TLS protocol 13299vulnerability (CVE-2009-3555), where an attacker prepends malicious 13300HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client TLS session. 13301The attack would succeed with non-Postfix SMTP servers that reply 13302to the malicious HELO, MAIL, RCPT, DATA commands after negotiating 13303the Postfix SMTP client TLS session. </p> 13304 13305<p> This feature is available in Postfix 2.7. </p> 13306 13307%PARAM lmtp_tls_block_early_mail_reply 13308 13309<p> The LMTP-specific version of the smtp_tls_block_early_mail_reply 13310configuration parameter. See there for details. </p> 13311 13312<p> This feature is available in Postfix 2.7 and later. </p> 13313 13314%PARAM empty_address_default_transport_maps_lookup_key <> 13315 13316<p> The sender_dependent_default_transport_maps search string that 13317will be used instead of the null sender address. </p> 13318 13319<p> This feature is available in Postfix 2.7 and later. </p> 13320 13321%PARAM sender_dependent_default_transport_maps 13322 13323<p> A sender-dependent override for the global default_transport 13324parameter setting. The tables are searched by the envelope sender 13325address and @domain. A lookup result of DUNNO terminates the search 13326without overriding the global default_transport parameter setting. 13327This information is overruled with the transport(5) table. </p> 13328 13329<p> Note: this overrides default_transport, not transport_maps, and 13330therefore the expected syntax is that of default_transport, not the 13331syntax of transport_maps. Specifically, this does not support the 13332transport_maps syntax for null transport, null nexthop, or null 13333email addresses. </p> 13334 13335<p> For safety reasons, this feature does not allow $number 13336substitutions in regular expression maps. </p> 13337 13338<p> This feature is available in Postfix 2.7 and later. </p> 13339 13340%PARAM address_verify_sender_dependent_default_transport_maps $sender_dependent_default_transport_maps 13341 13342<p> Overrides the sender_dependent_default_transport_maps parameter 13343setting for address verification probes. </p> 13344 13345<p> This feature is available in Postfix 2.7 and later. </p> 13346 13347%PARAM default_filter_nexthop 13348 13349<p> When a content_filter or FILTER request specifies no explicit 13350next-hop destination, use $default_filter_nexthop instead; when 13351that value is empty, use the domain in the recipient address. 13352Specify "default_filter_nexthop = $myhostname" for compatibility 13353with Postfix version 2.6 and earlier, or specify an explicit next-hop 13354destination with each content_filter value or FILTER action. </p> 13355 13356<p> This feature is available in Postfix 2.7 and later. </p> 13357 13358%PARAM smtp_address_preference any 13359 13360<p> The address type ("ipv6", "ipv4" or "any") that the Postfix 13361SMTP client will try first, when a destination has IPv6 and IPv4 13362addresses with equal MX preference. This feature has no effect 13363unless the inet_protocols setting enables both IPv4 and IPv6. 13364With Postfix 2.8 the default is "ipv6". </p> 13365 13366<p> This feature is available in Postfix 2.8 and later. </p> 13367 13368%PARAM lmtp_address_preference ipv6 13369 13370<p> The LMTP-specific version of the smtp_address_preference 13371configuration parameter. See there for details. </p> 13372 13373<p> This feature is available in Postfix 2.8 and later. </p> 13374 13375%PARAM smtp_dns_resolver_options 13376 13377<p> DNS Resolver options for the Postfix SMTP client. Specify zero 13378or more of the following options, separated by comma or whitespace. 13379Option names are case-sensitive. Some options refer to domain names 13380that are specified in the file /etc/resolv.conf or equivalent. </p> 13381 13382<dl> 13383 13384<dt><b>res_defnames</b></dt> 13385 13386<dd> Append the current domain name to single-component names (those 13387that do not contain a "." character). This can produce incorrect 13388results, and is the hard-coded behavior prior to Postfix 2.8. </dd> 13389 13390<dt><b>res_dnsrch</b></dt> 13391 13392<dd> Search for host names in the current domain and in parent 13393domains. This can produce incorrect results and is therefore not 13394recommended. </dd> 13395 13396</dl> 13397 13398<p> This feature is available in Postfix 2.8 and later. </p> 13399 13400%PARAM lmtp_dns_resolver_options 13401 13402<p> The LMTP-specific version of the smtp_dns_resolver_options 13403configuration parameter. See there for details. </p> 13404 13405<p> This feature is available in Postfix 2.8 and later. </p> 13406 13407%PARAM postscreen_dnsbl_threshold 1 13408 13409<p> The inclusive lower bound for blocking a remote SMTP client, based on 13410its combined DNSBL score as defined with the postscreen_dnsbl_sites 13411parameter. </p> 13412 13413<p> This feature is available in Postfix 2.8. </p> 13414 13415%PARAM postscreen_command_count_limit 20 13416 13417<p> The limit on the total number of commands per SMTP session for 13418postscreen(8)'s built-in SMTP protocol engine. This SMTP engine 13419defers or rejects all attempts to deliver mail, therefore there is 13420no need to enforce separate limits on the number of junk commands 13421and error commands. </p> 13422 13423<p> This feature is available in Postfix 2.8. </p> 13424 13425%PARAM postscreen_command_time_limit ${stress?10}${stress:300}s 13426 13427<p> The time limit to read an entire command line with postscreen(8)'s 13428built-in SMTP protocol engine. </p> 13429 13430<p> This feature is available in Postfix 2.8. </p> 13431 13432%PARAM postscreen_dnsbl_ttl 1h 13433 13434<p> The amount of time that postscreen(8) will use the result from 13435a successful DNS blocklist test. During this time, the client IP address 13436is excluded from this test. The default is relatively short, because a 13437good client can immediately talk to a real Postfix SMTP server. 13438</p> 13439 13440<p> Specify a non-zero time value (an integral value plus an optional 13441one-letter suffix that specifies the time unit). Time units: s 13442(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13443 13444<p> This feature is available in Postfix 2.8. </p> 13445 13446%PARAM postscreen_pipelining_action enforce 13447 13448<p> The action that postscreen(8) takes when a remote SMTP client 13449sends 13450multiple commands instead of sending one command and waiting for 13451the server to respond. Specify one of the following: </p> 13452 13453<dl> 13454 13455<dt> <b>ignore</b> </dt> 13456 13457<dd> Ignore the failure of this test. Allow other tests to complete. 13458Do <i>not</i> repeat this test before some the result from some 13459other test expires. 13460This option is useful for testing and collecting statistics 13461without blocking mail permanently. </dd> 13462 13463<dt> <b>enforce</b> </dt> 13464 13465<dd> Allow other tests to complete. Reject attempts to deliver mail 13466with a 550 SMTP reply, and log the helo/sender/recipient information. 13467Repeat this test the next time the client connects. </dd> 13468 13469<dt> <b>drop</b> </dt> 13470 13471<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13472this test the next time the client connects. </dd> 13473 13474</dl> 13475 13476<p> This feature is available in Postfix 2.8. </p> 13477 13478%PARAM postscreen_pipelining_ttl 30d 13479 13480<p> The amount of time that postscreen(8) will use the result from 13481a successful "pipelining" SMTP protocol test. During this time, the 13482client IP address is excluded from this test. The default is 13483long because a good client must disconnect after it passes the test, 13484before it can talk to a real Postfix SMTP server. </p> 13485 13486<p> Specify a non-zero time value (an integral value plus an optional 13487one-letter suffix that specifies the time unit). Time units: s 13488(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13489 13490<p> This feature is available in Postfix 2.8. </p> 13491 13492%PARAM postscreen_pipelining_enable no 13493 13494<p> Enable "pipelining" SMTP protocol tests in the postscreen(8) 13495server. These tests are expensive: a good client must disconnect 13496after it passes the test, before it can talk to a real Postfix SMTP 13497server. </p> 13498 13499<p> This feature is available in Postfix 2.8. </p> 13500 13501%PARAM postscreen_watchdog_timeout 10s 13502 13503<p> How much time a postscreen(8) process may take to respond to 13504a remote SMTP client command or to perform a cache operation before it 13505is terminated by a built-in watchdog timer. This is a safety 13506mechanism that prevents postscreen(8) from becoming non-responsive 13507due to a bug in Postfix itself or in system software. To avoid 13508false alarms and unnecessary cache corruption this limit cannot be 13509set under 10s. </p> 13510 13511<p> Specify a non-zero time value (an integral value plus an optional 13512one-letter suffix that specifies the time unit). Time units: s 13513(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13514 13515<p> This feature is available in Postfix 2.8. </p> 13516 13517%PARAM postscreen_helo_required $smtpd_helo_required 13518 13519<p> Require that a remote SMTP client sends HELO or EHLO before 13520commencing a MAIL transaction. </p> 13521 13522<p> This feature is available in Postfix 2.8. </p> 13523 13524%PARAM postscreen_forbidden_commands $smtpd_forbidden_commands 13525 13526<p> List of commands that the postscreen(8) server considers in 13527violation of the SMTP protocol. See smtpd_forbidden_commands for 13528syntax, and postscreen_non_smtp_command_action for possible actions. 13529</p> 13530 13531<p> This feature is available in Postfix 2.8. </p> 13532 13533%PARAM postscreen_disable_vrfy_command $disable_vrfy_command 13534 13535<p> Disable the SMTP VRFY command in the postscreen(8) daemon. See 13536disable_vrfy_command for details. </p> 13537 13538<p> This feature is available in Postfix 2.8. </p> 13539 13540%PARAM postscreen_non_smtp_command_action drop 13541 13542<p> The action that postscreen(8) takes when a remote SMTP client sends 13543non-SMTP commands as specified with the postscreen_forbidden_commands 13544parameter. Specify one of the following: </p> 13545 13546<dl> 13547 13548<dt> <b>ignore</b> </dt> 13549 13550<dd> Ignore the failure of this test. Allow other tests to complete. 13551Do <i>not</i> repeat this test before some the result from some 13552other test expires. 13553This option is useful for testing and collecting statistics 13554without blocking mail permanently. </dd> 13555 13556<dt> <b>enforce</b> </dt> 13557 13558<dd> Allow other tests to complete. Reject attempts to deliver mail 13559with a 550 SMTP reply, and log the helo/sender/recipient information. 13560Repeat this test the next time the client connects. </dd> 13561 13562<dt> <b>drop</b> </dt> 13563 13564<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13565this test the next time the client connects. This action is the 13566same as with the Postfix SMTP server's smtpd_forbidden_commands 13567feature. </dd> 13568 13569</dl> 13570 13571<p> This feature is available in Postfix 2.8. </p> 13572 13573%PARAM postscreen_non_smtp_command_ttl 30d 13574 13575<p> The amount of time that postscreen(8) will use the result from 13576a successful "non_smtp_command" SMTP protocol test. During this 13577time, the client IP address is excluded from this test. The default 13578is long because a client must disconnect after it passes the test, 13579before it can talk to a real Postfix SMTP server. </p> 13580 13581<p> Specify a non-zero time value (an integral value plus an optional 13582one-letter suffix that specifies the time unit). Time units: s 13583(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13584 13585<p> This feature is available in Postfix 2.8. </p> 13586 13587%PARAM postscreen_non_smtp_command_enable no 13588 13589<p> Enable "non-SMTP command" tests in the postscreen(8) server. These 13590tests are expensive: a client must disconnect after it passes the 13591test, before it can talk to a real Postfix SMTP server. </p> 13592 13593<p> This feature is available in Postfix 2.8. </p> 13594 13595%PARAM postscreen_dnsbl_reply_map 13596 13597<p> A mapping from actual DNSBL domain name which includes a secret 13598password, to the DNSBL domain name that postscreen will reply with 13599when it rejects mail. When no mapping is found, the actual DNSBL 13600domain will be used. </p> 13601 13602<p> For maximal stability it is best to use a file that is read 13603into memory such as pcre:, regexp: or texthash: (texthash: is similar 13604to hash:, except a) there is no need to run postmap(1) before the 13605file can be used, and b) texthash: does not detect changes after 13606the file is read). </p> 13607 13608<p> Example: </p> 13609 13610<pre> 13611/etc/postfix/main.cf: 13612 postscreen_dnsbl_reply_map = texthash:/etc/postfix/dnsbl_reply 13613</pre> 13614 13615<pre> 13616/etc/postfix/dnsbl_reply: 13617 secret.zen.spamhaus.org zen.spamhaus.org 13618</pre> 13619 13620<p> This feature is available in Postfix 2.8. </p> 13621 13622%PARAM postscreen_bare_newline_action ignore 13623 13624<p> The action that postscreen(8) takes when a remote SMTP client sends 13625a bare newline character, that is, a newline not preceded by carriage 13626return. Specify one of the following: </p> 13627 13628<dl> 13629 13630<dt> <b>ignore</b> </dt> 13631 13632<dd> Ignore the failure of this test. Allow other tests to complete. 13633Do <i>not</i> repeat this test before some the result from some 13634other test expires. 13635This option is useful for testing and collecting statistics 13636without blocking mail permanently. </dd> 13637 13638<dt> <b>enforce</b> </dt> 13639 13640<dd> Allow other tests to complete. Reject attempts to deliver mail 13641with a 550 SMTP reply, and log the helo/sender/recipient information. 13642Repeat this test the next time the client connects. </dd> 13643 13644<dt> <b>drop</b> </dt> 13645 13646<dd> Drop the connection immediately with a 521 SMTP reply. Repeat 13647this test the next time the client connects. </dd> 13648 13649</dl> 13650 13651<p> This feature is available in Postfix 2.8. </p> 13652 13653%PARAM postscreen_bare_newline_ttl 30d 13654 13655<p> The amount of time that postscreen(8) will use the result from 13656a successful "bare newline" SMTP protocol test. During this 13657time, the client IP address is excluded from this test. The default 13658is long because a remote SMTP client must disconnect after it passes 13659the test, 13660before it can talk to a real Postfix SMTP server. </p> 13661 13662<p> Specify a non-zero time value (an integral value plus an optional 13663one-letter suffix that specifies the time unit). Time units: s 13664(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13665 13666<p> This feature is available in Postfix 2.8. </p> 13667 13668%PARAM postscreen_bare_newline_enable no 13669 13670<p> Enable "bare newline" SMTP protocol tests in the postscreen(8) 13671server. These tests are expensive: a remote SMTP client must 13672disconnect after 13673it passes the test, before it can talk to a real Postfix SMTP server. 13674</p> 13675 13676<p> This feature is available in Postfix 2.8. </p> 13677 13678%PARAM postscreen_client_connection_count_limit $smtpd_client_connection_count_limit 13679 13680<p> How many simultaneous connections any remote SMTP client is 13681allowed to have 13682with the postscreen(8) daemon. By default, this limit is the same 13683as with the Postfix SMTP server. Note that the triage process can 13684take several seconds, with the time spent in postscreen_greet_wait 13685delay, and with the time spent talking to the postscreen(8) built-in 13686dummy SMTP protocol engine. </p> 13687 13688<p> This feature is available in Postfix 2.8. </p> 13689 13690%PARAM dnsblog_reply_delay 0s 13691 13692<p> A debugging aid to artifically delay DNS responses. </p> 13693 13694<p> This feature is available in Postfix 2.8. </p> 13695 13696%PARAM reset_owner_alias no 13697 13698<p> Reset the local(8) delivery agent's idea of the owner-alias 13699attribute, when delivering mail to a child alias that does not have 13700its own owner alias. </p> 13701 13702<p> This feature is available in Postfix 2.8 and later. With older 13703Postfix releases, the behavior is as if this parameter is set to 13704"yes". </p> 13705 13706<p> As documented in aliases(5), when an alias <i>name</i> has a 13707companion alias named owner-<i>name</i>, delivery errors will be 13708reported to the owner alias instead of the sender. This configuration 13709is recommended for mailing lists. <p> 13710 13711<p> A less known property of the owner alias is that it also forces 13712the local(8) delivery agent to write local and remote addresses 13713from alias expansion to a new queue file, instead of attempting to 13714deliver mail to local addresses as soon as they come out of alias 13715expansion. </p> 13716 13717<p> Writing local addresses from alias expansion to a new queue 13718file allows for robust handling of temporary delivery errors: errors 13719with one local member have no effect on deliveries to other members 13720of the list. On the other hand, delivery to local addresses as 13721soon as they come out of alias expansion is fragile: a temporary 13722error with one local address from alias expansion will cause the 13723entire alias to be expanded repeatedly until the error goes away, 13724or until the message expires in the queue. In that case, a problem 13725with one list member results in multiple message deliveries to other 13726list members. </p> 13727 13728<p> The default behavior of Postfix 2.8 and later is to keep the 13729owner-alias attribute of the parent alias, when delivering mail to 13730a child alias that does not have its own owner alias. Then, local 13731addresses from that child alias will be written to a new queue file, 13732and a temporary error with one local address will not affect delivery 13733to other mailing list members. </p> 13734 13735<p> Unfortunately, older Postfix releases reset the owner-alias 13736attribute when delivering mail to a child alias that does not have 13737its own owner alias. The local(8) delivery agent then attempts to 13738deliver local addresses as soon as they come out of child alias 13739expansion. If delivery to any address from child alias expansion 13740fails with a temporary error condition, the entire mailing list may 13741be expanded repeatedly until the mail expires in the queue, resulting 13742in multiple deliveries of the same message to mailing list members. 13743</p> 13744 13745%PARAM qmgr_ipc_timeout 60s 13746 13747<p> The time limit for the queue manager to send or receive information 13748over an internal communication channel. The purpose is to break 13749out of deadlock situations. If the time limit is exceeded the 13750software either retries or aborts the operation. </p> 13751 13752<p> 13753Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 13754The default time unit is s (seconds). 13755</p> 13756 13757<p> This feature is available in Postfix 2.8 and later. </p> 13758 13759%PARAM qmgr_daemon_timeout 1000s 13760 13761<p> How much time a Postfix queue manager process may take to handle 13762a request before it is terminated by a built-in watchdog timer. 13763</p> 13764 13765<p> 13766Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks). 13767The default time unit is s (seconds). 13768</p> 13769 13770<p> This feature is available in Postfix 2.8 and later. </p> 13771 13772%PARAM tls_preempt_cipherlist no 13773 13774<p> With SSLv3 and later, use the Postfix SMTP server's cipher 13775preference order instead of the remote client's cipher preference 13776order. </p> 13777 13778<p> By default, the OpenSSL server selects the client's most preferred 13779cipher that the server supports. With SSLv3 and later, the server may 13780choose its own most preferred cipher that is supported (offered) by 13781the client. Setting "tls_preempt_cipherlist = yes" enables server cipher 13782preferences. </p> 13783 13784<p> While server cipher selection may in some cases lead to a more secure 13785or performant cipher choice, there is some risk of interoperability 13786issues. In the past, some SSL clients have listed lower priority ciphers 13787that they did not implement correctly. If the server chooses a cipher 13788that the client prefers less, it may select a cipher whose client 13789implementation is flawed. </p> 13790 13791<p> This feature is available in Postfix 2.8 and later, in combination 13792with OpenSSL 0.9.7 and later. </p> 13793 13794%PARAM tls_disable_workarounds see "postconf -d" output 13795 13796<p> List or bit-mask of OpenSSL bug work-arounds to disable. </p> 13797 13798<p> The OpenSSL toolkit includes a set of work-arounds for buggy SSL/TLS 13799implementations. Applications, such as Postfix, that want to maximize 13800interoperability ask the OpenSSL library to enable the full set of 13801recommended work-arounds. </p> 13802 13803<p> From time to time, it is discovered that a work-around creates a 13804security issue, and should no longer be used. If upgrading OpenSSL 13805to a fixed version is not an option or an upgrade is not available 13806in a timely manner, or in closed environments where no buggy clients 13807or servers exist, it may be appropriate to disable some or all of the 13808OpenSSL interoperability work-arounds. This parameter specifies which 13809bug work-arounds to disable. </p> 13810 13811<p> If the value of the parameter is a hexadecimal long integer starting 13812with "0x", the bug work-arounds corresponding to the bits specified in 13813its value are removed from the <b>SSL_OP_ALL</b> work-around bit-mask 13814(see openssl/ssl.h and SSL_CTX_set_options(3)). You can specify more 13815bits than are present in SSL_OP_ALL, excess bits are ignored. Specifying 138160xFFFFFFFF disables all bug-workarounds on a 32-bit system. This should 13817also be sufficient on 64-bit systems, until OpenSSL abandons support 13818for 32-bit systems and starts using the high 32 bits of a 64-bit 13819bug-workaround mask. </p> 13820 13821<p> Otherwise, the parameter is a white-space or comma separated list 13822of specific named bug work-arounds chosen from the list below. It 13823is possible that your OpenSSL version includes new bug work-arounds 13824added after your Postfix source code was last updated, in that case 13825you can only disable one of these via the hexadecimal syntax above. </p> 13826 13827<dl> 13828 13829<dt><b>MICROSOFT_SESS_ID_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd> 13830 13831<dt><b>NETSCAPE_CHALLENGE_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd> 13832 13833<dt><b>LEGACY_SERVER_CONNECT</b></dt> <dd>See SSL_CTX_set_options(3)</dd> 13834 13835<dt><b>NETSCAPE_REUSE_CIPHER_CHANGE_BUG</b></dt> <dd> also aliased 13836as <b>CVE-2010-4180</b>. Postfix 2.8 disables this work-around by 13837default with OpenSSL versions that may predate the fix. Fixed in 13838OpenSSL 0.9.8q and OpenSSL 1.0.0c.</dd> 13839 13840<dt><b>SSLREF2_REUSE_CERT_TYPE_BUG</b></dt> <dd>See 13841SSL_CTX_set_options(3)</dd> 13842 13843<dt><b>MICROSOFT_BIG_SSLV3_BUFFER</b></dt> <dd>See 13844SSL_CTX_set_options(3)</dd> 13845 13846<dt><b>MSIE_SSLV2_RSA_PADDING</b></dt> <dd> also aliased as 13847<b>CVE-2005-2969</b>. Postfix 2.8 disables this work-around by 13848default with OpenSSL versions that may predate the fix. Fixed in 13849OpenSSL 0.9.7h and OpenSSL 0.9.8a.</dd> 13850 13851<dt><b>SSLEAY_080_CLIENT_DH_BUG</b></dt> <dd>See 13852SSL_CTX_set_options(3)</dd> 13853 13854<dt><b>TLS_D5_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd> 13855 13856<dt><b>TLS_BLOCK_PADDING_BUG</b></dt> <dd>See SSL_CTX_set_options(3)</dd> 13857 13858<dt><b>TLS_ROLLBACK_BUG</b></dt> <dd>See SSL_CTX_set_options(3). 13859This is disabled in OpenSSL 0.9.7 and later. Nobody should still 13860be using 0.9.6! </dd> 13861 13862<dt><b>DONT_INSERT_EMPTY_FRAGMENTS</b></dt> <dd>See 13863SSL_CTX_set_options(3)</dd> 13864 13865<dt><b>CRYPTOPRO_TLSEXT_BUG</b></dt> <dd>New with GOST support in 13866OpenSSL 1.0.0.</dd> 13867 13868</dl> 13869 13870<p> This feature is available in Postfix 2.8 and later. </p> 13871 13872%PARAM tlsproxy_watchdog_timeout 10s 13873 13874<p> How much time a tlsproxy(8) process may take to process local 13875or remote I/O before it is terminated by a built-in watchdog timer. 13876This is a safety mechanism that prevents tlsproxy(8) from becoming 13877non-responsive due to a bug in Postfix itself or in system software. 13878To avoid false alarms and unnecessary cache corruption this limit 13879cannot be set under 10s. </p> 13880 13881<p> Specify a non-zero time value (an integral value plus an optional 13882one-letter suffix that specifies the time unit). Time units: s 13883(seconds), m (minutes), h (hours), d (days), w (weeks). </p> 13884 13885<p> This feature is available in Postfix 2.8. </p> 13886 13887%PARAM postscreen_discard_ehlo_keywords $smtpd_discard_ehlo_keywords 13888 13889<p> A case insensitive list of EHLO keywords (pipelining, starttls, 13890auth, etc.) that the postscreen(8) server will not send in the EHLO 13891response to a remote SMTP client. See smtpd_discard_ehlo_keywords 13892for details. </p> 13893 13894<p> This feature is available in Postfix 2.8 and later. </p> 13895 13896%PARAM postscreen_discard_ehlo_keyword_address_maps $smtpd_discard_ehlo_keyword_address_maps 13897 13898<p> Lookup tables, indexed by the remote SMTP client address, with 13899case insensitive lists of EHLO keywords (pipelining, starttls, auth, 13900etc.) that the postscreen(8) server will not send in the EHLO response 13901to a remote SMTP client. See smtpd_discard_ehlo_keywords for details. 13902The table is not searched by hostname for robustness reasons. </p> 13903 13904<p> This feature is available in Postfix 2.8 and later. </p> 13905 13906%PARAM postscreen_use_tls $smtpd_use_tls 13907 13908<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients, 13909but do not require that clients use TLS encryption. </p> 13910 13911<p> This feature is available in Postfix 2.8 and later. 13912Preferably, use postscreen_tls_security_level instead. </p> 13913 13914%PARAM postscreen_enforce_tls $smtpd_enforce_tls 13915 13916<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and 13917require that clients use TLS encryption. See smtpd_postscreen_enforce_tls 13918for details. </p> 13919 13920<p> This feature is available in Postfix 2.8 and later. 13921Preferably, use postscreen_tls_security_level instead. </p> 13922 13923%PARAM postscreen_tls_security_level $smtpd_tls_security_level 13924 13925<p> The SMTP TLS security level for the postscreen(8) server; when 13926a non-empty value is specified, this overrides the obsolete parameters 13927postscreen_use_tls and postscreen_enforce_tls. See smtpd_tls_security_level 13928for details. </p> 13929 13930<p> This feature is available in Postfix 2.8 and later. </p> 13931 13932%PARAM tlsproxy_enforce_tls $smtpd_enforce_tls 13933 13934<p> Mandatory TLS: announce STARTTLS support to remote SMTP clients, and 13935require that clients use TLS encryption. See smtpd_enforce_tls for 13936further details. </p> 13937 13938<p> This feature is available in Postfix 2.8 and later. </p> 13939 13940%PARAM tlsproxy_tls_CAfile $smtpd_tls_CAfile 13941 13942<p> A file containing (PEM format) CA certificates of root CAs 13943trusted to sign either remote SMTP client certificates or intermediate 13944CA certificates. See smtpd_tls_CAfile for further details. </p> 13945 13946<p> This feature is available in Postfix 2.8 and later. </p> 13947 13948%PARAM tlsproxy_tls_CApath $smtpd_tls_CApath 13949 13950<p> A directory containing (PEM format) CA certificates of root CAs 13951trusted to sign either remote SMTP client certificates or intermediate 13952CA certificates. See smtpd_tls_CApath for further details. </p> 13953 13954<p> This feature is available in Postfix 2.8 and later. </p> 13955 13956%PARAM tlsproxy_tls_always_issue_session_ids $smtpd_tls_always_issue_session_ids 13957 13958<p> Force the Postfix tlsproxy(8) server to issue a TLS session id, 13959even when TLS session caching is turned off. See 13960smtpd_tls_always_issue_session_ids for further details. </p> 13961 13962<p> This feature is available in Postfix 2.8 and later. </p> 13963 13964%PARAM tlsproxy_tls_ask_ccert $smtpd_tls_ask_ccert 13965 13966<p> Ask a remote SMTP client for a client certificate. See 13967smtpd_tls_ask_ccert for further details. </p> 13968 13969<p> This feature is available in Postfix 2.8 and later. </p> 13970 13971%PARAM tlsproxy_tls_ccert_verifydepth $smtpd_tls_ccert_verifydepth 13972 13973<p> The verification depth for remote SMTP client certificates. A 13974depth of 1 is sufficient if the issuing CA is listed in a local CA 13975file. See smtpd_tls_ccert_verifydepth for further details. </p> 13976 13977<p> This feature is available in Postfix 2.8 and later. </p> 13978 13979%PARAM tlsproxy_tls_cert_file $smtpd_tls_cert_file 13980 13981<p> File with the Postfix tlsproxy(8) server RSA certificate in PEM 13982format. This file may also contain the Postfix tlsproxy(8) server 13983private RSA key. See smtpd_tls_cert_file for further details. </p> 13984 13985<p> This feature is available in Postfix 2.8 and later. </p> 13986 13987%PARAM tlsproxy_tls_ciphers $smtpd_tls_ciphers 13988 13989<p> The minimum TLS cipher grade that the Postfix tlsproxy(8) server 13990will use with opportunistic TLS encryption. See smtpd_tls_ciphers 13991for further details. </p> 13992 13993<p> This feature is available in Postfix 2.8 and later. </p> 13994 13995%PARAM tlsproxy_tls_dcert_file $smtpd_tls_dcert_file 13996 13997<p> File with the Postfix tlsproxy(8) server DSA certificate in PEM 13998format. This file may also contain the Postfix tlsproxy(8) server 13999private DSA key. See smtpd_tls_dcert_file for further details. 14000</p> 14001 14002<p> This feature is available in Postfix 2.8 and later. </p> 14003 14004%PARAM tlsproxy_tls_dh1024_param_file $smtpd_tls_dh1024_param_file 14005 14006<p> File with DH parameters that the Postfix tlsproxy(8) server 14007should use with EDH ciphers. See smtpd_tls_dh1024_param_file for 14008further details. </p> 14009 14010<p> This feature is available in Postfix 2.8 and later. </p> 14011 14012%PARAM tlsproxy_tls_dh512_param_file $smtpd_tls_dh512_param_file 14013 14014<p> File with DH parameters that the Postfix tlsproxy(8) server 14015should use with EDH ciphers. See smtpd_tls_dh512_param_file for 14016further details. </p> 14017 14018<p> This feature is available in Postfix 2.8 and later. </p> 14019 14020%PARAM tlsproxy_tls_dkey_file $smtpd_tls_dkey_file 14021 14022<p> File with the Postfix tlsproxy(8) server DSA private key in PEM 14023format. This file may be combined with the Postfix tlsproxy(8) 14024server DSA certificate file specified with $smtpd_tls_dcert_file. 14025See smtpd_tls_dkey_file for further details. </p> 14026 14027<p> This feature is available in Postfix 2.8 and later. </p> 14028 14029%PARAM tlsproxy_tls_eccert_file $smtpd_tls_eccert_file 14030 14031<p> File with the Postfix tlsproxy(8) server ECDSA certificate in 14032PEM format. This file may also contain the Postfix tlsproxy(8) 14033server private ECDSA key. See smtpd_tls_eccert_file for further 14034details. </p> 14035 14036<p> This feature is available in Postfix 2.8 and later. </p> 14037 14038%PARAM tlsproxy_tls_eckey_file $smtpd_tls_eckey_file 14039 14040<p> File with the Postfix tlsproxy(8) server ECDSA private key in 14041PEM format. This file may be combined with the Postfix tlsproxy(8) 14042server ECDSA certificate file specified with $smtpd_tls_eccert_file. 14043See smtpd_tls_eckey_file for further details. </p> 14044 14045<p> This feature is available in Postfix 2.8 and later. </p> 14046 14047%PARAM tlsproxy_tls_eecdh_grade $smtpd_tls_eecdh_grade 14048 14049<p> The Postfix tlsproxy(8) server security grade for ephemeral 14050elliptic-curve Diffie-Hellman (EECDH) key exchange. See 14051smtpd_tls_eecdh_grade for further details. </p> 14052 14053<p> This feature is available in Postfix 2.8 and later. </p> 14054 14055%PARAM tlsproxy_tls_exclude_ciphers $smtpd_tls_exclude_ciphers 14056 14057<p> List of ciphers or cipher types to exclude from the tlsproxy(8) 14058server cipher list at all TLS security levels. See 14059smtpd_tls_exclude_ciphers for further details. </p> 14060 14061<p> This feature is available in Postfix 2.8 and later. </p> 14062 14063%PARAM tlsproxy_tls_fingerprint_digest $smtpd_tls_fingerprint_digest 14064 14065<p> The message digest algorithm to construct remote SMTP 14066client-certificate 14067fingerprints. See smtpd_tls_fingerprint_digest for further details. 14068</p> 14069 14070<p> This feature is available in Postfix 2.8 and later. </p> 14071 14072%PARAM tlsproxy_tls_key_file $smtpd_tls_key_file 14073 14074<p> File with the Postfix tlsproxy(8) server RSA private key in PEM 14075format. This file may be combined with the Postfix tlsproxy(8) 14076server RSA certificate file specified with $smtpd_tls_cert_file. 14077See smtpd_tls_key_file for further details. </p> 14078 14079<p> This feature is available in Postfix 2.8 and later. </p> 14080 14081%PARAM tlsproxy_tls_loglevel $smtpd_tls_loglevel 14082 14083<p> Enable additional Postfix tlsproxy(8) server logging of TLS 14084activity. Each logging level also includes the information that 14085is logged at a lower logging level. See smtpd_tls_loglevel for 14086further details. </p> 14087 14088<p> This feature is available in Postfix 2.8 and later. </p> 14089 14090%PARAM tlsproxy_tls_mandatory_ciphers $smtpd_tls_mandatory_ciphers 14091 14092<p> The minimum TLS cipher grade that the Postfix tlsproxy(8) server 14093will use with mandatory TLS encryption. See smtpd_tls_mandatory_ciphers 14094for further details. </p> 14095 14096<p> This feature is available in Postfix 2.8 and later. </p> 14097 14098%PARAM tlsproxy_tls_mandatory_exclude_ciphers $smtpd_tls_mandatory_exclude_ciphers 14099 14100<p> Additional list of ciphers or cipher types to exclude from the 14101tlsproxy(8) server cipher list at mandatory TLS security levels. 14102See smtpd_tls_mandatory_exclude_ciphers for further details. </p> 14103 14104<p> This feature is available in Postfix 2.8 and later. </p> 14105 14106%PARAM tlsproxy_tls_mandatory_protocols $smtpd_tls_mandatory_protocols 14107 14108<p> The SSL/TLS protocols accepted by the Postfix tlsproxy(8) server 14109with mandatory TLS encryption. If the list is empty, the server 14110supports all available SSL/TLS protocol versions. See 14111smtpd_tls_mandatory_protocols for further details. </p> 14112 14113<p> This feature is available in Postfix 2.8 and later. </p> 14114 14115%PARAM tlsproxy_tls_protocols $smtpd_tls_protocols 14116 14117<p> List of TLS protocols that the Postfix tlsproxy(8) server will 14118exclude or include with opportunistic TLS encryption. See 14119smtpd_tls_protocols for further details. </p> 14120 14121<p> This feature is available in Postfix 2.8 and later. </p> 14122 14123%PARAM tlsproxy_tls_req_ccert $smtpd_tls_req_ccert 14124 14125<p> With mandatory TLS encryption, require a trusted remote SMTP 14126client certificate in order to allow TLS connections to proceed. 14127See smtpd_tls_req_ccert for further details. </p> 14128 14129<p> This feature is available in Postfix 2.8 and later. </p> 14130 14131%PARAM tlsproxy_tls_security_level $smtpd_tls_security_level 14132 14133<p> The SMTP TLS security level for the Postfix tlsproxy(8) server; 14134when a non-empty value is specified, this overrides the obsolete 14135parameters smtpd_use_tls and smtpd_enforce_tls. See 14136smtpd_tls_security_level for further details. </p> 14137 14138<p> This feature is available in Postfix 2.8 and later. </p> 14139 14140%PARAM tlsproxy_tls_session_cache_timeout $smtpd_tls_session_cache_timeout 14141 14142<p> The expiration time of Postfix tlsproxy(8) server TLS session 14143cache information. A cache cleanup is performed periodically every 14144$smtpd_tls_session_cache_timeout seconds. See 14145smtpd_tls_session_cache_timeout for further details. </p> 14146 14147<p> This feature is available in Postfix 2.8 and later. </p> 14148 14149%PARAM tlsproxy_use_tls $smtpd_use_tls 14150 14151<p> Opportunistic TLS: announce STARTTLS support to remote SMTP clients, 14152but do not require that clients use TLS encryption. See smtpd_use_tls 14153for further details. </p> 14154 14155<p> This feature is available in Postfix 2.8 and later. </p> 14156 14157%PARAM smtpd_reject_footer 14158 14159<p> Optional information that is appended after each Postfix SMTP 14160server 141614XX or 5XX response. </p> 14162 14163<p> Example: </p> 14164 14165<pre> 14166/etc/postfix/main.cf: 14167 smtpd_reject_footer = For assistance, call 800-555-0101. 14168 Please provide the following information in your problem report: 14169 time ($localtime), client ($client_address) and server 14170 ($server_name). 14171</pre> 14172 14173<p> Server response: </p> 14174 14175<pre> 14176 550-5.5.1 <user@example> Recipient address rejected: User unknown 14177 550 5.5.1 For assistance, call 800-555-0101. Please provide the 14178 following information in your problem report: time (Jan 4 15:42:00), 14179 client (192.168.1.248) and server (mail1.example.com). 14180</pre> 14181 14182<p> Note: the above text is meant to make it easier to find the 14183Postfix logfile records for a failed SMTP session. The text itself 14184is not logged to the Postfix SMTP server's maillog file. </p> 14185 14186<p> Be sure to keep the text as short as possible. Long text may 14187be truncated before it is logged to the remote SMTP client's maillog 14188file, or before it is returned to the sender in a delivery status 14189notification. </p> 14190 14191<p> This feature supports a limited number of $name attributes in 14192the footer text. These are replaced by their current value for the 14193SMTP session: </p> 14194 14195<dl> 14196 14197<dt> <b>client_address</b> </dt> <dd> The Client IP address that 14198is logged in the maillog file. </dd> 14199 14200<dt> <b>client_port</b> </dt> <dd> The client TCP port that is 14201logged in the maillog file. </dd> 14202 14203<dt> <b>localtime</b> </dt> <dd> The server local time (Mmm dd 14204hh:mm:ss) that is logged in the maillog file. </dd> 14205 14206<dt> <b>server_name</b> </dt> <dd> The server's myhostname value. 14207This attribute is made available for sites with multiple MTAs 14208(perhaps behind a load-balancer), where the server name can help 14209the server support team to quickly find the right log files. </dd> 14210 14211</dl> 14212 14213<p> Notes: </p> 14214 14215<ul> 14216 14217<li> <p> NOT SUPPORTED are other attributes such as sender, recipient, 14218or main.cf parameters. </p> 14219 14220<li> <p> For safety reasons, text that does not match 14221$smtpd_expansion_filter is censored. </p> 14222 14223</ul> 14224 14225<p> This feature supports the two-character sequence \n as a request 14226for a line break in the footer text. Postfix automatically inserts 14227after each line break the three-digit SMTP reply code (and optional 14228enhanced status code) from the original Postfix reject message. 14229</p> 14230 14231<p> This feature is available in Postfix 2.8 and later. </p> 14232 14233%PARAM postscreen_expansion_filter see "postconf -d" output 14234 14235<p> List of characters that are permitted in postscreen_reject_footer 14236attribute expansions. See smtpd_expansion_filter for further 14237details. </p> 14238 14239<p> This feature is available in Postfix 2.8 and later. </p> 14240 14241%PARAM postscreen_reject_footer $smtpd_reject_footer 14242 14243<p> Optional information that is appended after a 4XX or 5XX 14244postscreen(8) server 14245response. See smtpd_reject_footer for further details. </p> 14246 14247<p> This feature is available in Postfix 2.8 and later. </p> 14248 14249%PARAM postscreen_command_filter $smtpd_command_filter 14250 14251<p> A mechanism to transform commands from remote SMTP clients. 14252See smtpd_command_filter for further details. </p> 14253 14254<p> This feature is available in Postfix 2.8 and later. </p> 14255 14256%PARAM dnsblog_service_name dnsblog 14257 14258<p> The name of the dnsblog(8) service entry in master.cf. This 14259service performs DNS white/blacklist lookups. </p> 14260 14261<p> This feature is available in Postfix 2.8 and later. </p> 14262 14263%PARAM tlsproxy_service_name tlsproxy 14264 14265<p> The name of the tlsproxy(8) service entry in master.cf. This 14266service performs plaintext <=> TLS ciphertext conversion. <p> 14267 14268<p> This feature is available in Postfix 2.8 and later. </p> 14269 14270%PARAM smtpd_per_record_deadline normal: no, overload: yes 14271 14272<p> Change the behavior of the smtpd_timeout time limit, from a 14273time limit per read or write system call, to a time limit to send 14274or receive a complete record (an SMTP command line, SMTP response 14275line, SMTP message content line, or TLS protocol message). This 14276limits the impact from hostile peers that trickle data one byte at 14277a time. </p> 14278 14279<p> Note: when per-record deadlines are enabled, a short timeout 14280may cause problems with TLS over very slow network connections. 14281The reasons are that a TLS protocol message can be up to 16 kbytes 14282long (with TLSv1), and that an entire TLS protocol message must be 14283sent or received within the per-record deadline. </p> 14284 14285<p> This feature is available in Postfix 2.9 and later. With older 14286Postfix releases, the behavior is as if this parameter is set to 14287"no". </p> 14288 14289%PARAM smtp_per_record_deadline no 14290 14291<p> Change the behavior of the smtp_*_timeout time limits, from a 14292time limit per read or write system call, to a time limit to send 14293or receive a complete record (an SMTP command line, SMTP response 14294line, SMTP message content line, or TLS protocol message). This 14295limits the impact from hostile peers that trickle data one byte at 14296a time. </p> 14297 14298<p> Note: when per-record deadlines are enabled, a short timeout 14299may cause problems with TLS over very slow network connections. 14300The reasons are that a TLS protocol message can be up to 16 kbytes 14301long (with TLSv1), and that an entire TLS protocol message must be 14302sent or received within the per-record deadline. </p> 14303 14304<p> This feature is available in Postfix 2.9 and later. With older 14305Postfix releases, the behavior is as if this parameter is set to 14306"no". </p> 14307 14308%PARAM lmtp_per_record_deadline no 14309 14310<p> The LMTP-specific version of the smtp_per_record_deadline 14311configuration parameter. See there for details. </p> 14312 14313<p> This feature is available in Postfix 2.9 and later. </p> 14314 14315%PARAM postscreen_whitelist_interfaces static:all 14316 14317<p> A list of local postscreen(8) server IP addresses where a 14318non-whitelisted remote SMTP client can obtain postscreen(8)'s temporary 14319whitelist status. This status is required before the client can 14320talk to a Postfix SMTP server process. By default, a client can 14321obtain postscreen(8)'s whitelist status on any local postscreen(8) 14322server IP address. </p> 14323 14324<p> When postscreen(8) listens on both primary and backup MX 14325addresses, the postscreen_whitelist_interfaces parameter can be 14326configured to give the temporary whitelist status only when a client 14327connects to a primary MX address. Once a client is whitelisted it 14328can talk to a Postfix SMTP server on any address. Thus, clients 14329that connect only to backup MX addresses will never become whitelisted, 14330and will never be allowed to talk to a Postfix SMTP server process. 14331</p> 14332 14333<p> Example: </p> 14334 14335<pre> 14336/etc/postfix/main.cf: 14337 # Don't whitelist connections to the backup IP address. 14338 postscreen_whitelist_interfaces = !168.100.189.8, static:all 14339</pre> 14340 14341<p> This feature is available in Postfix 2.9 and later. </p> 14342 14343%PARAM enable_long_queue_ids no 14344 14345<p> Enable long, non-repeating, queue IDs (queue file names). The 14346benefit of non-repeating names is simpler logfile analysis and 14347easier queue migration (there is no need to run "postsuper" to 14348change queue file names that don't match their message file inode 14349number). </p> 14350 14351<p> Note: see below for how to prepare long queue file names 14352for migration to Postfix ≤ 2.8. </p> 14353 14354<p> Changing the parameter value to "yes" has the following effects: 14355</p> 14356 14357<ul> 14358 14359<li> <p> Existing queue file names are not affected. </p> 14360 14361<li> <p> New queue files are created with names such as 3Pt2mN2VXxznjll. 14362These are encoded in a 52-character alphabet that contains digits 14363(0-9), upper-case letters (B-Z) and lower-case letters (b-z). For 14364safety reasons the vowels (AEIOUaeiou) are excluded from the alphabet. 14365The name format is: 6 or more characters for the time in seconds, 143664 characters for the time in microseconds, the 'z'; the remainder 14367is the file inode number encoded in the first 51 characters of the 1436852-character alphabet. </p> 14369 14370<li> <p> New messages have a Message-ID header with 14371<i>queueID</i>@<i>myhostname</i>. </p> 14372 14373<li> <p> The mailq (postqueue -p) output has a wider Queue ID column. 14374The number of whitespace-separated fields is not changed. <p> 14375 14376<li> <p> The hash_queue_depth algorithm uses the first characters 14377of the queue file creation time in microseconds, after conversion 14378into hexadecimal representation. This produces the same queue hashing 14379behavior as if the queue file name was created with "enable_long_queue_ids 14380= no". </p> 14381 14382</ul> 14383 14384<p> Changing the parameter value to "no" has the following effects: 14385</p> 14386 14387<ul> 14388 14389<li> <p> Existing long queue file names are renamed to the short 14390form (while running "postfix reload" or "postsuper"). </p> 14391 14392<li> <p> New queue files are created with names such as C3CD21F3E90 14393from a hexadecimal alphabet that contains digits (0-9) and upper-case 14394letters (A-F). The name format is: 5 characters for the time in 14395microseconds; the remainder is the file inode number. </p> 14396 14397<li> <p> New messages have a Message-ID header with 14398<i>YYYYMMDDHHMMSS.queueid</i>@<i>myhostname</i>, where 14399<i>YYYYMMDDHHMMSS</i> are the year, month, day, hour, minute and 14400second. 14401 14402<li> <p> The mailq (postqueue -p) output has the same format as 14403with Postfix ≤ 2.8. <p> 14404 14405<li> <p> The hash_queue_depth algorithm uses the first characters 14406of the queue file name, with the hexadecimal representation of the 14407file creation time in microseconds. </p> 14408 14409</ul> 14410 14411<p> Before migration to Postfix ≤ 2.8, the following commands 14412are required to convert long queue file names into short names: </p> 14413 14414<pre> 14415# postfix stop 14416# postconf enable_long_queue_ids=no 14417# postsuper 14418</pre> 14419 14420<p> Repeat the postsuper command until it reports no more queue file 14421name changes. </p> 14422 14423<p> This feature is available in Postfix 2.9 and later. </p> 14424 14425%PARAM sendmail_fix_line_endings always 14426 14427<p> Controls how the Postfix sendmail command converts email message 14428line endings from <CR><LF> into UNIX format (<LF>). 14429</p> 14430 14431<dl> 14432 14433<dt> <b>always</b> </dt> <dd> Always convert message lines ending 14434in <CR><LF>. This setting is the default with Postfix 144352.9 and later. </dd> 14436 14437<dt> <b>strict</b> </dt> <dd> Convert message lines ending in 14438<CR><LF> only if the first input line ends in 14439<CR><LF>. This setting is backwards-compatible with 14440Postfix 2.8 and earlier. </dd> 14441 14442<dt> <b>never</b> </dt> <dd> Never convert message lines ending in 14443<CR><LF>. This setting exists for completeness only. 14444</dd> 14445 14446</dl> 14447 14448<p> This feature is available in Postfix 2.9 and later. </p> 14449 14450%PARAM smtp_send_dummy_mail_auth no 14451 14452<p> Whether or not to append the "AUTH=<>" option to the MAIL 14453FROM command in SASL-authenticated SMTP sessions. The default is 14454not to send this, to avoid problems with broken remote SMTP servers. 14455Before Postfix 2.9 the behavior is as if "smtp_send_dummy_mail_auth 14456= yes". 14457 14458<p> This feature is available in Postfix 2.9 and later. </p> 14459 14460%PARAM lmtp_send_dummy_mail_auth no 14461 14462<p> The LMTP-specific version of the smtp_send_dummy_mail_auth 14463configuration parameter. See there for details. </p> 14464 14465<p> This feature is available in Postfix 2.9 and later. </p> 14466 14467%PARAM address_verify_sender_ttl 0s 14468 14469<p> The time between changes in the time-dependent portion of address 14470verification probe sender addresses. The time-dependent portion is 14471appended to the localpart of the address specified with the 14472address_verify_sender parameter. This feature is ignored when the 14473probe sender addresses is the null sender, i.e. the address_verify_sender 14474value is empty or <>. </p> 14475 14476<p> Historically, the probe sender address was fixed. This has 14477caused such addresses to end up on spammer mailing lists, and has 14478resulted in wasted network and processing resources. </p> 14479 14480<p> To enable time-dependent probe sender addresses, specify a 14481non-zero time value (an integral value plus an optional one-letter 14482suffix that specifies the time unit). Specify a value of at least 14483several hours, to avoid problems with senders that use greylisting. 14484Avoid nice TTL values, to make the result less predictable. Time 14485units are: s (seconds), m (minutes), h (hours), d (days), w (weeks). 14486</p> 14487 14488<p> This feature is available in Postfix 2.9 and later. </p> 14489 14490%PARAM daemon_table_open_error_is_fatal no 14491 14492<p> How a Postfix daemon process handles errors while opening lookup 14493tables: gradual degradation or immediate termination. </p> 14494 14495<dl> 14496 14497<dt> <b> no </b> (default) </dt> <dd> <p> Gradual degradation: a 14498daemon process logs a message of type "error" and continues execution 14499with reduced functionality. Features that do not depend on the 14500unavailable table will work normally, while features that depend 14501on the table will result in a type "warning" message. <br> When 14502the notify_classes parameter value contains the "data" class, the 14503Postfix SMTP server and client will report transcripts of sessions 14504with an error because a table is unavailable. </p> </dd> 14505 14506<dt> <b> yes </b> (historical behavior) </dt> <dd> <p> Immediate 14507termination: a daemon process logs a type "fatal" message and 14508terminates immediately. This option reduces the number of possible 14509code paths through Postfix, and may therefore be slightly more 14510secure than the default. </p> </dd> 14511 14512</dl> 14513 14514<p> For the sake of sanity, the number of type "error" messages is 14515limited to 13 over the lifetime of a daemon process. </p> 14516 14517<p> This feature is available in Postfix 2.9 and later. </p> 14518