From ca9dbb69cdd2c904aaedefe05e80824dd91e926f Mon Sep 17 00:00:00 2001 From: Wietse Venema Date: Mon, 23 Dec 2002 00:00:00 -0500 Subject: [PATCH] postfix-2.0.0-20021223 --- postfix/README_FILES/SASL_README | 2 +- postfix/RELEASE_NOTES | 2 +- postfix/RELEASE_NOTES-2.0 | 35 +++-- postfix/conf/master.cf | 2 +- postfix/conf/sample-rate.cf | 2 +- postfix/conf/sample-smtp.cf | 2 +- postfix/html/faq.html | 111 ++++++++++++++-- postfix/html/rate.html | 10 +- postfix/html/trivial-rewrite.8.html | 123 ++++++++++-------- postfix/man/man8/trivial-rewrite.8 | 26 ++-- postfix/src/global/mail_params.h | 2 +- postfix/src/global/mail_version.h | 2 +- postfix/src/trivial-rewrite/trivial-rewrite.c | 26 ++-- 13 files changed, 235 insertions(+), 110 deletions(-) diff --git a/postfix/README_FILES/SASL_README b/postfix/README_FILES/SASL_README index 73ebdd6d3..a3457beb4 100644 --- a/postfix/README_FILES/SASL_README +++ b/postfix/README_FILES/SASL_README @@ -185,7 +185,7 @@ exercise. It probably is not worth the trouble. Older Microsoft SMTP client software implements a non-standard version of the AUTH protocol syntax, and expects that the SMTP server replies to EHLO with "250 AUTH=stuff" instead of "250 AUTH -stuff". To accomodate such clients in addition to conformant +stuff". To accommodate such clients in addition to conformant clients, set "broken_sasl_auth_clients = yes" in the main.cf file. Testing SASL authentication in the Postfix SMTP server diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index 5ab2ba5e2..24526a461 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -40,7 +40,7 @@ but should work properly. To disable backwards compatibility specify The behavior of "sendmail -v" has changed. One -v option now sends an email report with the status of each delivery attempt. Multiple -v options behave as before: turn on verbose logging in the sendmail -and and postdrop commands. +and postdrop commands. The Postfix upgrade procedure will add two new services to your master.cf file: "trace" and "verify". These servers can run inside diff --git a/postfix/RELEASE_NOTES-2.0 b/postfix/RELEASE_NOTES-2.0 index 3c95d2bf6..4412f6dfc 100644 --- a/postfix/RELEASE_NOTES-2.0 +++ b/postfix/RELEASE_NOTES-2.0 @@ -1,3 +1,10 @@ +NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE +Before upgrading from Postfix 1.1 you must stop Postfix ("postfix +stop"). Some internal protocols have changed. No mail will be +lost if you fail to stop and restart Postfix, but Postfix won't be +able to receive any new mail, either. +NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE + In the text below, changes are labeled with the Postfix snapshot that introduced the change, and whether the change introduced a feature, an incompatibility, or whether the feature is obsolete. @@ -13,8 +20,8 @@ snapshot release). Patches change the patchlevel and the release date. Snapshots change only the release date, unless they include the same bugfixes as a patch release. -Major changes with Postfix version 2.0.0 (released 20021222) -============================================================ +Major changes with Postfix version 2.0.0 (released 20021222, 20021223) +====================================================================== First comes the bad news - things that may break when you upgrade from Postfix 1.1. Then comes the good news - things that evolved @@ -138,7 +145,7 @@ for details. MIME headers in attachments. This is much more efficient than previous versions that recognized MIME headers via body_checks. MIME headers are now processed one multi-line header at a time, -instead of one body line at a time. To get the the old behavior, +instead of one body line at a time. To get the old behavior, specify "disable_mime_input_processing = yes". More details in conf/sample-filter.cf. @@ -252,19 +259,25 @@ appended to the previous line. More details about the syntax are given in the pcre_table(5) and regexp_table(5) manual pages. [Feature 20020717] The default timeout for establishing an SMTP -connection has been reduced to 30 seconds, because many systems -have an atrociously large default timeout value. +connection has been reduced to 30 seconds, because many system +TCP/IP stacks have an atrociously large default timeout value. [Feature 20020505] Finer control over Berkeley DB memory usage, The parameter "berkeley_db_create_buffer_size" (default: 16 MBytes) specifies the buffer size for the postmap and postalias commands. The parameter "berkeley_db_read_buffer_size" (default: 256 kBytes) -speficies the buffer size for all other applications. Specify +specifies the buffer size for all other applications. Specify "berkeley_db_read_buffer_size = 1048576" to get the old read buffer -size. For more information, see the last paragraphs of the DB_README -file. +size. Contributed by Victor Duchovni. For more information, see +the last paragraphs of the DB_README file. -Improved compatibitity +[Incompat 20021211] The default process limit is doubled from 50 +to 100. The default limits on the number of active queue files or +recipients are doubled from 10000 to 20000. The default concurrency +for parallel delivery to the same destination is doubled from 10 +to 20. + +Improved compatibility ====================== [Feature 20020527] The Postfix SMTP client will now convert 8BITMIME @@ -622,7 +635,7 @@ for details. MIME headers in attachments. This is much more efficient than previous versions that recognized MIME headers via body_checks. MIME headers are now processed one multi-line header at a time, -instead of one body line at a time. To get the the old behavior, +instead of one body line at a time. To get the old behavior, specify "disable_mime_input_processing = yes". More details in conf/sample-filter.cf. @@ -793,7 +806,7 @@ Berkeley DB related changes The parameter "berkeley_db_create_buffer_size" (default: 16 MBytes) specifies the buffer size for the postmap and postalias commands. The parameter "berkeley_db_read_buffer_size" (default: 256 kBytes) -speficies the buffer size for all other applications. Specify +specifies the buffer size for all other applications. Specify "berkeley_db_read_buffer_size = 1048576" to get the old read buffer size. For more information, see the last paragraphs of the DB_README file. diff --git a/postfix/conf/master.cf b/postfix/conf/master.cf index 1955bd4d0..e2ca2a137 100644 --- a/postfix/conf/master.cf +++ b/postfix/conf/master.cf @@ -67,7 +67,7 @@ # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args -# (yes) (yes) (yes) (never) (50) +# (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd #628 inet n - n - - qmqpd diff --git a/postfix/conf/sample-rate.cf b/postfix/conf/sample-rate.cf index 0de56f928..d0ba93b3c 100644 --- a/postfix/conf/sample-rate.cf +++ b/postfix/conf/sample-rate.cf @@ -9,7 +9,7 @@ # destination. This is the default limit for delivery via SMTP, via # the local delivery agent and via the pipe mailer. # -default_destination_concurrency_limit = 10 +default_destination_concurrency_limit = 20 # The default_destination_recipient_limit parameter specifies a # default limit on the number of recipients per message delivery. diff --git a/postfix/conf/sample-smtp.cf b/postfix/conf/sample-smtp.cf index d0664cd0f..1ab352468 100644 --- a/postfix/conf/sample-smtp.cf +++ b/postfix/conf/sample-smtp.cf @@ -145,7 +145,7 @@ smtp_pix_workaround_threshold_time = 500s # The default limit is the default_destination_concurrency_limit # parameter. It is probably safer to limit the concurrency to 10. # -smtp_destination_concurrency_limit = 10 +smtp_destination_concurrency_limit = 20 # The smtp_destination_recipient_limit parameter limits the number # of recipients per delivery via the smtp delivery agent. diff --git a/postfix/html/faq.html b/postfix/html/faq.html index f51db1c27..edb261f92 100644 --- a/postfix/html/faq.html +++ b/postfix/html/faq.html @@ -80,6 +80,8 @@ domains with "relay access denied"
  • What does "warning: cannot access UNIX password database" mean? +
  • What does "Error: too many hops" mean? +
  • What does "fatal: open database /etc/aliases.db" mean?
  • What does "fatal: unknown service: smtp/tcp" mean? @@ -316,6 +318,10 @@ mailbox

    Content filtering

    +

    Other transports: UUCP, FAX, etc.

    @@ -1275,19 +1281,66 @@ clients?

    -Your problem could be that the disk is saturated with I/O from +Your problem could be one of several. + +

    + +

      + +
    • You're trying to send mail to difficult to reach sites (Hotmail, +Yahoo, etc.). Solution: set up transport map entries that give special +treatment (many parallel connections, short connection timeouts): + +

      + +

      +/etc/postfix/main.cf:
      +    transport_maps = hash:/etc/postfix/transport
      +    deadbeats_destination_concurrency_limit = 50
      +
      +/etc/postfix/transport:
      +    hotmail.com		deadbeats:
      +    yahoo.com		deadbeats:
      +
      +/etc/postfix/master.cf:
      +    deadbeats	  unix	-	-	n	-	-	smtp
      +	-o smtp_connect_timeout=5 -o smtp_helo_timeout=5
      +
      + +

      + +

    • Incoming mail, destined for a small number of inside mailhubs, +is competing with outgoing mail to the Internet. As of Postfix +version 2, this should be less of a problem. However, when a single +internal mailhub goes down, it can totally ruin the performance +because Postfix is wasting huge amounts of time on connection +timeouts. The solution is to specify shorter connection timeouts +for the inbound relay transport: + +

      + +

      +/etc/postfix/main.cf:
      +    mydestination = my.own.host.name
      +    relay_domains = my.corp.domain
      +    relay_transport = relay
      +
      +/etc/postfix/master.cf:
      +    relay	  unix	-	-	n	-	-	smtp
      +	-o smtp_connect_timeout=2 -o smtp_helo_timeout=2
      +
      + +

      + +

    • The disk is saturated with I/O from receiving mail, so that the Postfix queue manager gets insufficient chance to process the requests (many SMTP server processes are competing for disk access against one poor queue manager).

      -You solve the problem by getting faster disks. - -

      - -I am still solving the scheduling problem from the software side, -but don't hold your breath. +You solve the problem by getting faster disks, and/or by using +different disk drives for logging, mail queue, and mailboxes.

      @@ -1322,6 +1375,8 @@ depending on the interface that it is supposed to handle. inet_interfaces = $myhostname +

    +

    Postfix responds slowly to incoming SMTP connections

    @@ -1706,6 +1761,12 @@ your nslookup test should begin with asking for the MX record. Some DNS servers are broken and produce no reply when asked for a non-existent MX record. +

  • Secondly, the nslookup test is invalid if you ran it as +a privileged user. Postfix DNS lookups are known to fail because +of incorrect permissions on system files and directories. For +example, a common beginner's mistake is to lose world read permission +for the /etc/resolv.conf file. +

  • Check out your Postfix master.cf file. If the SMTP client @@ -1954,8 +2015,8 @@ systems for performance and/or security reasons.

    -The warning message means that new mail notificiation failed because -the comsat network service is turned off. +The Postfix warning message means that new mail notificiation failed +because the comsat network service is turned off.

    @@ -1971,6 +2032,12 @@ specify:

    +Note: recent versions of procmail also produce biff +notifications. To silence biff completely you may also have +to updte procmail configuration files. + +

    + To enable the comsat network service, uncomment the corresponding entry in the inetd.conf file, and kill -HUP the inetd process. @@ -2711,6 +2778,32 @@ effective.


    +

    What does "Error: too many hops" mean?

    + +Short answer: this message means that mail is probably looping. If +you see this after you turned on Postfix content filtering, then +you have made a mistake that causes mail to be filtered repeatedly. +This is cured by appropriate use of content_filter=, +header_checks=, and body_checks=. + +

    + +Long answer: the message has too many Received: message headers. +A received header is added whenever Postfix (or any MTA) receives +a message. A large number of Received: message headers +is an indication that mail is looping around. + +

    + +Side comment: email uses the opposite of the technique that is used +to avoid IP forwarding loops. With IP, the sender sets a TTL (time +to live) field in the IP header. The field is decremented by each +router. When the TTL reaches zero the packet is discarded and an +ICMP error message is returned to the sender. + +


    + +

    Using UUCP over TCP

    This subject comes up whenever someone asks about a "domain in diff --git a/postfix/html/rate.html b/postfix/html/rate.html index 2ef8ec042..70dfde499 100644 --- a/postfix/html/rate.html +++ b/postfix/html/rate.html @@ -82,14 +82,14 @@ Use a larger value if your machine is a major mail hub. You can override this setting for specific Postfix daemons by editing the master.cf file. For example, if you do not -wish to receive 50 SMTP messages at the same time, you could specify: +wish to receive 100 SMTP messages at the same time, you could specify:
     
     # ==========================================================================
     # service type  private unpriv  chroot  wakeup  maxproc command + args
    -#               (yes)   (yes)   (yes)   (never) (50)
    +#               (yes)   (yes)   (yes)   (never) (100)
     # ==========================================================================
     . . .
     smtp      inet  n       -       -       -       5       smtpd
    @@ -126,7 +126,7 @@ limit for the specific mail transport channel.
     

    The default_destination_concurrency_limit parameter -(default: 10) controls how many messages may be sent to the same +(default: 20) controls how many messages may be sent to the same destination simultaneously. You can override this setting for specific delivery channels (local, smtp, uucp etc.). The main.cf file recommends the following: @@ -135,7 +135,7 @@ specific delivery channels (local, smtp, uucp etc.). The

    local_destination_concurrency_limit = 2 -
    default_destination_concurrency_limit = 10 +
    default_destination_concurrency_limit = 20
    @@ -150,7 +150,7 @@ manager, you don't want to run too many instances at the same time.

    -A destination concurrency limit of 10 for SMTP delivery seems enough +A destination concurrency limit of 20 for SMTP delivery seems enough to noticeably load a system without bringing it to its knees. Be careful when changing this to a much larger number. diff --git a/postfix/html/trivial-rewrite.8.html b/postfix/html/trivial-rewrite.8.html index ce5a09df1..fcb9f67ea 100644 --- a/postfix/html/trivial-rewrite.8.html +++ b/postfix/html/trivial-rewrite.8.html @@ -40,38 +40,49 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) DEFAULT DELIVERY METHODS By default, Postfix uses one of the following delivery methods. This may be overruled with the optional trans- - port(5) table. + port(5) table. The default delivery method is selected by + matching the recipient address domain against one of the + following: - o The recipient domain matches $mydestination or - $inet_interfaces. The transport and optional nex- - thop are specified with $local_transport. The - default nexthop is the recipient domain. + $mydestination - o The recipient domain matches $virtual_mail- - box_domains. The transport and optional nexthop - are specified with $virtual_transport. The default - nexthop is the recipient domain. + $inet_interfaces + The transport and optional nexthop are specified + with $local_transport. The default nexthop is the + recipient domain. - o The recipient domain matches $relay_domains. The - transport and optional nexthop are specified with - $relay_transport. This overrides the optional nex- - thop information that is specified with $relayhost. - The default nexthop is the recipient domain. + $virtual_alias_domains + The recipient address is undeliverable (user + unknown). By definition, all known addresses in a + virtual alias domain are aliased to other + addresses. - o All other destinations. the transport and optional - nexthop are specified with $relay_transport. This - overrides the optional nexthop information that is - specified with $relayhost. The default nexthop is + $virtual_mailbox_domains + The transport and optional nexthop are specified + with $virtual_transport. The default nexthop is the recipient domain. + $relay_domains + The transport and optional nexthop are specified + with $relay_transport. This overrides the optional + nexthop information that is specified with $relay- + host. The default nexthop is the recipient domain. + + none of the above + The transport and optional nexthop are specified + with $default_transport. This overrides the + optional nexthop information that is specified with + $relayhost. The default nexthop is the recipient + domain. + STANDARDS - None. The command does not interact with the outside + None. The command does not interact with the outside world. SECURITY - The trivial-rewrite daemon is not security sensitive. By - default, this daemon does not talk to remote or local - users. It can run at a fixed low privilege in a chrooted + The trivial-rewrite daemon is not security sensitive. By + default, this daemon does not talk to remote or local + users. It can run at a fixed low privilege in a chrooted environment. DIAGNOSTICS @@ -79,21 +90,21 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) BUGS CONFIGURATION PARAMETERS - The following main.cf parameters are especially relevant - to this program. See the Postfix main.cf file for syntax - details and for default values. Use the postfix reload + The following main.cf parameters are especially relevant + to this program. See the Postfix main.cf file for syntax + details and for default values. Use the postfix reload command after a configuration change. Miscellaneous empty_address_recipient - The recipient that is substituted for the null + The recipient that is substituted for the null address. inet_interfaces - The network interfaces that this mail system - receives mail on. This information is used to - determine if user@[net.work.addr.ess] is local or - remote. Mail for local users is given to the + The network interfaces that this mail system + receives mail on. This information is used to + determine if user@[net.work.addr.ess] is local or + remote. Mail for local users is given to the $local_transport. mydestination @@ -102,7 +113,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) virtual_alias_domains List of simulated virtual domains (domains with all - recipients aliased to some other local or remote + recipients aliased to some other local or remote domain). virtual_mailbox_domains @@ -115,10 +126,10 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) resolve_unquoted_address When resolving an address, do not quote the address - localpart as per RFC 822, so that additional @, % - or ! characters remain visible. This is techni- + localpart as per RFC 822, so that additional @, % + or ! characters remain visible. This is techni- cally incorrect, but allows us to stop relay - attacks when forwarding mail to a Sendmail primary + attacks when forwarding mail to a Sendmail primary MX host. relocated_maps @@ -144,50 +155,50 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) Routing local_transport - Where to deliver mail for destinations that match - $mydestination or $inet_interfaces. The default + Where to deliver mail for destinations that match + $mydestination or $inet_interfaces. The default transport is local:$myhostname. + Syntax is transport:nexthop; see transport(5) for + details. The :nexthop part is optional. + + virtual_transport + Where to deliver mail for non-local domains that + match $virtual_mailbox_domains. The default trans- + port is virtual. + Syntax is transport:nexthop; see transport(5) for details. The :nexthop part is optional. - virtual_transport - Where to deliver mail for non-local domains that - match $virtual_mailbox_domains. The default trans- - port is virtual. - - Syntax is transport:nexthop; see transport(5) for - details. The :nexthop part is optional. - relay_transport - Where to deliver mail for non-local domains that - match $relay_domains. The default transport is + Where to deliver mail for non-local domains that + match $relay_domains. The default transport is relay (which normally is a clone of the smtp trans- port). - Syntax is transport:nexthop; see transport(5) for + Syntax is transport:nexthop; see transport(5) for details. The :nexthop part is optional. default_transport - Where to deliver all other non-local mail. The + Where to deliver all other non-local mail. The default transport is smtp. - Syntax is transport:nexthop; see transport(5) for + Syntax is transport:nexthop; see transport(5) for details. The :nexthop part is optional. parent_domain_matches_subdomains - List of Postfix features that use domain.tld pat- - terns to match sub.domain.tld (as opposed to + List of Postfix features that use domain.tld pat- + terns to match sub.domain.tld (as opposed to requiring .domain.tld patterns). relayhost - The default host to send non-local mail to when no - host is specified with $relay_transport or - $default_transport, and when the recipient address + The default host to send non-local mail to when no + host is specified with $relay_transport or + $default_transport, and when the recipient address does not match the optional the transport(5) table. transport_maps - List of tables with recipient or domain to (trans- + List of tables with recipient or domain to (trans- port, nexthop) mappings. SEE ALSO @@ -197,7 +208,7 @@ TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8) relocated(5) format of the "user has moved" table LICENSE - The Secure Mailer license must be distributed with this + The Secure Mailer license must be distributed with this software. AUTHOR(S) diff --git a/postfix/man/man8/trivial-rewrite.8 b/postfix/man/man8/trivial-rewrite.8 index 0bb05bbf1..4320f7f2d 100644 --- a/postfix/man/man8/trivial-rewrite.8 +++ b/postfix/man/man8/trivial-rewrite.8 @@ -39,25 +39,29 @@ The envelope recipient address that is passed on to \fInexthop\fR. .fi By default, Postfix uses one of the following delivery methods. This may be overruled with the optional transport(5) table. -.IP \(bu -The recipient domain matches \fB$mydestination\fR or -\fB$inet_interfaces\fR. The transport and optional nexthop +The default delivery method is selected by matching the +recipient address domain against one of the following: +.IP \fB$mydestination\fR +.IP \fB$inet_interfaces\fR +The transport and optional nexthop are specified with \fB$local_transport\fR. The default nexthop is the recipient domain. -.IP \(bu -The recipient domain matches \fB$virtual_mailbox_domains\fR. +.IP \fB$virtual_alias_domains\fR +The recipient address is undeliverable (user unknown). +By definition, all known addresses in a virtual alias domain +are aliased to other addresses. +.IP \fB$virtual_mailbox_domains\fR The transport and optional nexthop are specified with \fB$virtual_transport\fR. The default nexthop is the recipient domain. -.IP \(bu -The recipient domain matches \fB$relay_domains\fR. The -transport and optional nexthop are specified with +.IP \fB$relay_domains\fR +The transport and optional nexthop are specified with \fB$relay_transport\fR. This overrides the optional nexthop information that is specified with \fB$relayhost\fR. The default nexthop is the recipient domain. -.IP \(bu -All other destinations. the transport and optional nexthop are -specified with \fB$relay_transport\fR. +.IP "none of the above" +The transport and optional nexthop are specified with +\fB$default_transport\fR. This overrides the optional nexthop information that is specified with \fB$relayhost\fR. The default nexthop is the recipient domain. diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h index 1da702a1e..9c004ec7f 100644 --- a/postfix/src/global/mail_params.h +++ b/postfix/src/global/mail_params.h @@ -580,7 +580,7 @@ extern int var_init_dest_concurrency; #define VAR_DEST_CON_LIMIT "default_destination_concurrency_limit" #define _DEST_CON_LIMIT "_destination_concurrency_limit" -#define DEF_DEST_CON_LIMIT 10 +#define DEF_DEST_CON_LIMIT 20 extern int var_dest_con_limit; #define VAR_LOCAL_CON_LIMIT "local" _DEST_CON_LIMIT diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index bbc64e6fb..cb185a208 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -20,7 +20,7 @@ * Patches change the patchlevel and the release date. Snapshots change the * release date only, unless they include the same bugfix as a patch release. */ -#define MAIL_RELEASE_DATE "20021222" +#define MAIL_RELEASE_DATE "20021223" #define VAR_MAIL_VERSION "mail_version" #define DEF_MAIL_VERSION "2.0.0-" MAIL_RELEASE_DATE diff --git a/postfix/src/trivial-rewrite/trivial-rewrite.c b/postfix/src/trivial-rewrite/trivial-rewrite.c index 0313c4ecf..6e89221ad 100644 --- a/postfix/src/trivial-rewrite/trivial-rewrite.c +++ b/postfix/src/trivial-rewrite/trivial-rewrite.c @@ -31,25 +31,29 @@ /* .fi /* By default, Postfix uses one of the following delivery methods. /* This may be overruled with the optional transport(5) table. -/* .IP \(bu -/* The recipient domain matches \fB$mydestination\fR or -/* \fB$inet_interfaces\fR. The transport and optional nexthop +/* The default delivery method is selected by matching the +/* recipient address domain against one of the following: +/* .IP \fB$mydestination\fR +/* .IP \fB$inet_interfaces\fR +/* The transport and optional nexthop /* are specified with \fB$local_transport\fR. /* The default nexthop is the recipient domain. -/* .IP \(bu -/* The recipient domain matches \fB$virtual_mailbox_domains\fR. +/* .IP \fB$virtual_alias_domains\fR +/* The recipient address is undeliverable (user unknown). +/* By definition, all known addresses in a virtual alias domain +/* are aliased to other addresses. +/* .IP \fB$virtual_mailbox_domains\fR /* The transport and optional nexthop are specified with /* \fB$virtual_transport\fR. /* The default nexthop is the recipient domain. -/* .IP \(bu -/* The recipient domain matches \fB$relay_domains\fR. The -/* transport and optional nexthop are specified with +/* .IP \fB$relay_domains\fR +/* The transport and optional nexthop are specified with /* \fB$relay_transport\fR. This overrides the optional nexthop /* information that is specified with \fB$relayhost\fR. /* The default nexthop is the recipient domain. -/* .IP \(bu -/* All other destinations. the transport and optional nexthop are -/* specified with \fB$relay_transport\fR. +/* .IP "none of the above" +/* The transport and optional nexthop are specified with +/* \fB$default_transport\fR. /* This overrides the optional nexthop information that is specified /* with \fB$relayhost\fR. /* The default nexthop is the recipient domain.