[TriLUG] seeking advice for a bullet-proof mail server

Aaron S. Joyner aaron at joyner.ws
Fri Nov 5 13:37:31 EST 2004


Ryan Leathers wrote:

>Thanks for the follow-up question Matt.
>
>Certain systems will send mail to customers, and their responses to
>predetermined mailboxes will be parsed for further action or read by humans
>in some cases.  
>
>Another system which can only speak SMTP will send messages with distinct
>subject fields.  I will need to hand off incoming mail which matches an
>array of subject fields to a home-brew application which parses, talks to a
>database, fires off some jobs, and finally responds with another email.
>
>I know its ugly.  Its not my choice.  If I could do JMS I would.  SMTP is
>what I'm stuck with.
>This is obviously asynchronous, but I can only afford minutes - not hours of
>delay, which is why MX weighting is not a practical solution for me.
>Perhaps Aaron J's suggestion of putting all my eggs in one REALLY good
>basket is the right move, but I'm hoping for something better.  I know I
>could get the access behavior I want out of LVS, but I'm not sure how to get
>the data shared by both MTAs without a headache should hardware fail.  That
>is, unless I add a separate storage subsystem, which brings me back to my
>original post.    
>  
>
Does it matter what machine processes your request?  Is it possible to 
have different boxes responsible for fulfilling any particular request?  
Originally I wasn't reading closely enough to realize that you were 
automating a task other than the recieval of email - my bad there.  If 
your secondary server is configured to accept all mail locally for the 
automation domain as well, and forward any accounts in your regular 
domain to the normal mail server, then you can have that second host 
deliver mail properly *and* have it still do your "fancy task".  Note 
that if you're going to try to direct all mail based on subject, things 
are going to be really confusing.  I'd *strongly* suggest doing it based 
on destination address, if you have any control over it and a desire to 
keep your sanity.

If on the other hand your task can only be completed by one machine, for 
concurrency / storage / whatever reasons, or what-have-you, then you're 
back to my previous suggestion.

Aaron S. Joyner

PS - Also note that it's entirely possible to do not only fail over, but 
load balancing with MX trickery.  You can have more than one MX with the 
same priority, and traffic will be equally divided between them.  If 
your application needs to scale, and can be processed by multiple 
machines, that's the way to go about it.



More information about the TriLUG mailing list