Link to home
Start Free TrialLog in
Avatar of malatia
malatia

asked on

Configuring qmail to use an outgoing mail relay

I have a qmail server  living on an Amazon Ec2 instance, it's primary purpose is to receive a large amount of incoming mail, which it does fine. It also wants to forward a very small portion of the mail that it gets, but one of the things about ec2 is since the machines use dynamic IPs, you cannot send outgoing mail on ec2 without it being blocked by most recipients. The solution for this is to not use ec2 for outgoing mail, or use a relay. Option 1 isn't available to me so I'm looking to have my qmail server send outgoing mail to a relay. I have little idea how to do this. Can someone point me towards how to set qmail to use an outgoing relay server?
Avatar of arnold
arnold
Flag of United States of America image

You need to add the entry into smtproutes:
:ec2_mailserver

http://www.lifewithqmail.org/lwq.html#smtproutes
smtproutes configured in that way will force all email to that server though.  He just wants to forward a small part of the email received.

What is the criteria for the email to be forwarded?  All email for one domain? etc.
The person wants all email that needs to be sent out forwarded through a smart host provided by the ISP.
The question is why an email server whose primary task is to process incoming email,   have a dynamic IP address?
Avatar of malatia
malatia

ASKER

Yes actually all of my outgoing mail from this server has to be relayed. It doesn't send much, the forwards are actually from a few criteria, joe@mydomain.com -> joe@hotmail.com, critical@mydomain -> me@mydomain, etc. set up in qmailadmin.

>The question is why an email server whose primary task is to process incoming email,   have a dynamic IP address?

It's actually ok running in the cloud as incoming server. All the mail it needs to get it gets. But it happpens to also send some outgoing mail. Any outgoing mail has to be relayed to mysmtpserver.com.  I think smtproutes is the way to do this then?  Qmail administration is new to me. Thank you much :)
OK... It's a pet-peeve of mine when "experts" tell users that WORKING parts of their system cannot work. So, let's take at face value that malatia has a QMail server that is on a server with a dynamic IP address. (This CAN be done -- RELIABLY -- for inbound mail by using any of the myriad of DynDNS-type services. The problem -- and thus the question here -- is in outbound mail, not inbound).

matalia has already admitted that ALL of his outbound messages will have to go through a relay host -- forwarded and "originating" messages alike! So, with that in mind, let's re-examine the original post...

First, there seems to be some confusion about how smtproutes is used within QMail. It DOES override the DNS lookup of MX records -- but it does NOT override the "locals" setting. So, if your "receiving domains" are listed in locals, you won't have to worry about inbound messages being "relayed" to your relay host. The same can be said for virtualdomains that "point" to a local domain.

ASIDE: If you WANT to have a domain whose messages you receive, but always forward out someplace else, enter the domain name in the rcpthosts file and the smtproutes file (and no place else).

So, if we assume you make the appropriate entry in your smtproutes file (and YES, you want the "global" forward format demonstrated above by arnold), then the next question appears to be how to make only certain users' e-mails forwarded.

In this instance, you're wanting to look at the .qmail file in each user's folder that contains their MailDir. (Assuming you're not using something like VPopMail to process inbound messages). In the .qmail file, place a line that starts with an & in the file for each "off-server" address you want the message sent to. You can thus forward to multiple accounts, and you can also choose whether the local system retains a copy of said messages.

For example, assuming we have a user called "me" whose e-mail address on the QMail server is me@mydomain.tld, and that messages are delivered to the MailDir located at /home/me/Maildir, then:
- if your .qmail looks like:
  &me@hotmail.com

  Then all mail for me@mydomain.tld is forwarded to me@hotmail.com -- and no local copy is kept. If the smtproutes file exists, then the routing goes through the mail relay host (as it should).

- if your .qmail looks like:
  &me@hotmail.com
  /home/me/Maildir

  Then all mail for me@mydomain.tld is forwarded to me@hotmail.com -- and a local copy IS kept.

- if your .qmail looks like:
  &me@hotmail.com
  &you@yahoo.com

  Then all mail for me@mydomain.tld is forwarded to both me@hotmail.com AND you@yahoo.com -- and no local copy is kept.

You should get the idea.

I hope this helps.... someone!

Dan
IT4SOHO
ASKER CERTIFIED SOLUTION
Avatar of arnold
arnold
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial