[TriLUG] backup email server
Aaron S. Joyner
aaron at joyner.ws
Mon Jun 21 07:27:21 EDT 2004
Michael Hrivnak wrote:
>And one more. I've found my backup server at the mercy of an ISP that filters
>outbound port 25 (Cox), so I'm forced to use relayhost = their.smtp.server.
>Presumably, that puts me at the mercy of their server configuration
>concerning how long it will rety the delivery of mail to my primary machine.
>
>What I'm concerned about is a loop.
>
>1. Primary server is down, so email is send to backup.
>2. Backup server relays through the cox server to primary
>3. Primary is still down, and so the Cox server goes down the mx list and
>delivers to the backup server.
>4. Goto step 2.
>
>Is this what would actually happen? How do you all suggest I get around this?
>Just for kicks, what if the primary host were also listening on another port,
>say 2525 (can I do that?). The backup server is set so that relayhost =
>hrivnak.org:2525. If the relayhost is the same as the final destination, how
>will it behave? If hrivnak.org is down, would it still put it into the queue
>and continue to attempt delivery until the relayhost came back up?
>
>Thanks a ton,
>
>Michael
>
>On Monday 21 June 2004 12:14 am, Michael Hrivnak wrote:
>
>
>>One more question: If my primary server is down, how often will the backup
>>server retry? I took my primary server down just long enough to send a
>>test message through the backup server, and I'm wondering when I should be
>>expecting it!
>>
>>
>>
Okay, the oldest question first. It will retry the message based on the
settings in main.cf for qmgr, check the qmgr man page for more details.
The most important bits are:
> minimal_backoff_time
> Minimal time in seconds between delivery attempts of a
> deferred
> message.
>
> This parameter also limits the time an unreachable
> destination
> is kept in the short-term, in-memory destination status
> cache.
>
> maximal_backoff_time
> Maximal time in seconds between delivery attempts of a
> deferred
> message.
>
> maximal_queue_lifetime
> Maximal time in days a message is queued before it is
> sent back
> as undeliverable.
>
> queue_run_delay
> Time in seconds between deferred queue scans. Queue
> scans do not
> overlap.
Essentially, it starts with minimal_backoff_time and then retries less
often at each attempt, until maximal_backoff_time is reached.
minimal_backoff_time can't be less than queue_run_delay or the "wakeup"
set for qmgr in master.cf, if I recall correctly.
Okay, the other question about Cox filtering mail. Yes, your original
idea would cause a very annoying mail loop. You would send it to Cox,
and they would send it back to you, as fast as possible. Repeat ad
nauseum until the Cox server admin disables your cable modem. The much
better solution is to setup your primary mail server to also receive
mail on another high port (2525 would work fine) and use the transports
file on the backup server to specify mail for that domain, to be
delivered to that machine, on that port. It would go something like this:
In main.cf: transport_maps = hash:/usr/local/etc/postfix/transport
in transport: hrivnak.org smtp:[mail.hrivnak.org:2525]
Don't forget that transport is then going to be a hash, so you'll need
to do this:
postmap ./transport
Note the ./ and don't leave it out. You may substitute a full path if
you prefer, but you must specify an actual path to the transport file,
when using postmap. "postmap transport" will not work as intended.
That ought to cover you pretty well for a backup mail server with
postfix. If you've got any more questions, just throw them out there. :)
Aaron S. Joyner
More information about the TriLUG
mailing list