On Wed, Mar 12, 2025 at 05:17:52PM -0400, Bill Cole via Postfix-users wrote:

> > My mail server is over 13 years old.  Rather than waiting for it to
> > fail, I have provisioned a replacement.  It has the identical
> > configration as the production server.  It has been tested on my local
> > LAN and works just the same as the production server.  My plan for the
> > switch over is to shutdown postfix on the production server and wait a
> > few minutes.
> 
> It would be best to disable the various SMTP services only, and let the
> queues drain normally. You can do that by commenting everything that runs
> smtpd out of master.cf and restarting Postfix.

    https://www.postfix.org/postconf.5.html#master_service_disable

    master_service_disable (default: empty)
       Selectively disable master(8) listener ports by service type or
       by service name and type.  Specify a list of service types
       ("inet", "unix", "fifo", or "pass") or "name/type" tuples, where
       "name"  is the first field of a master.cf entry and "type" is a
       service type. As with other Postfix matchlists, a search stops at
       the first match.  Specify "!pattern" to exclude a service from
       the list. By default, all master(8) listener ports are enabled.

       Note: this feature does not support "/file/name" or "type:table"
       patterns, nor does it support wildcards such as "*" or "all".
       This is intentional.

       Examples:

       # With Postfix 2.6..2.10 use '.' instead of '/'.
       # Turn on all master(8) listener ports (the default).
       master_service_disable =
       # Turn off only the main SMTP listener port.
       master_service_disable = smtp/inet
       # Turn off all TCP/IP listener ports.
       master_service_disable = inet
       # Turn off all TCP/IP listener ports except "foo".
       master_service_disable = !foo/inet, inet

       This feature is available in Postfix 2.6 and later.

Hence:

    # postconf -e 'master_service_disable = inet'
    # postfix reload

> After doing that, change your
> MX to point ONLY at the new server. Then run 'sendmail -q' to make Postfix
> run through the whole queue to clear it.

The equivalent "native" interface is:

    postqueue -f

> You can let Postfix sit on that state indefinitely, so if there are 'stuck'
> messages you can leave the non-accepting server up until Postfix manages to
> deliver them or bounce them.

One can expedite draining the queue, by setting the new server as a
relayhost, PROVIDED it is first configured to allow relaying by the old
server (old server's IP listed in mynetworks on new server):

    # postconf -e 'relayhost = [newmx.domain.example]'
    # postqueue -f

-- 
    Viktor.
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to