Solved

Configuring qmail to use an outgoing mail relay

Posted on 2008-10-28
9
2,084 Views
Last Modified: 2013-12-02
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?
0
Comment
Question by:malatia
9 Comments
 
LVL 76

Expert Comment

by:arnold
Comment Utility
You need to add the entry into smtproutes:
:ec2_mailserver

http://www.lifewithqmail.org/lwq.html#smtproutes
0
 
LVL 6

Expert Comment

by:Syngin9
Comment Utility
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.
0
 
LVL 76

Expert Comment

by:arnold
Comment Utility
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?
0
 

Author Comment

by:malatia
Comment Utility
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 :)
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 20

Expert Comment

by:Daniel McAllister
Comment Utility
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
0
 
LVL 76

Accepted Solution

by:
arnold earned 200 total points
Comment Utility

There are different ways to get an email address that would forward without the need for creating local account.  Look at www.lifewithqmail.org and look for various aliasing option if that is a consideration.

It is often better to have a mail server with a static IP when one relies on consistently and timely receipt of email.
0
 
LVL 20

Assisted Solution

by:Daniel McAllister
Daniel McAllister earned 250 total points
Comment Utility
Indeed.... having a static IP on the server could allow one to eliminate problem entirely. For, with a static IP, one could request that the ISP create a PTR record for your QMail server. With that, those pesky ISPs that block your messages  if your forward & reverse IPs don't match could be duly satisfied. Problem solved.

However, when you read the original posting (and read a little in to it, I suppose), it seems to me that malatia most likely had already figured that out. However, for whatever reason (may they forever remain privately his/her own), they wanted to know how to make QMail forward outbound mail to a relay server.

I've said all this already... but there is something potentially important to add:

If you're sending your outbound messages to the relay host, one might assume that the relay host is going to want/need some kind of authorization to permit the relay (otherwise, it would likely be an OPEN relay, and quickly appear on an RBL list or dozen).

So, what I neglected to mention above is that QMail can accommodate that in the smtproutes file. Simply add the auth information on the same line.

For example:
:relay.verizon.net  myverizonname myverizonpassword

The ugly part of this is that the password is now listed in a clear-text file. As such, you may want to limit the access to that file (just make sure qmail-remote can access it!).

This should resolve malatia's issue completely.

Dan
IT4SOHO
0
 
LVL 13

Assisted Solution

by:Xyptilon2
Xyptilon2 earned 50 total points
Comment Utility
Just a short note, in order for the remote authentication to work in the smtproutes file, you need to patch the original qmail 1.03 with the remote auth patch. Which you need to look for since i dont have the link available at the moment.
0
 
LVL 20

Assisted Solution

by:Daniel McAllister
Daniel McAllister earned 250 total points
Comment Utility
Try the QMail Toaster -- one of several QMail "projects" that pre-builds & configures loads of popular patches and applications. http://www.qmailtoaster.com.

Note: QMail Toaster uses vpopmail -- meaning that users can be given personal control over their mail routing (even creating server-based vacation messages!).

Good luck!

Dan
IT4SOHO
0

Featured Post

Want to promote your upcoming event?

Are you going to an event? Are you going to be exhibiting at a tradeshow? Talking at a conference? Using a promotional banner in your email signature ensures that your organization’s most important contacts stay in the know and can potentially spread the word about the event.

Join & Write a Comment

Nearly six years ago I was hired by a company to be their senior server engineer. One of my first projects was to implement Exchange Server 2007 on a Windows Server 2008 Single Copy Cluster for high availability. That was the easy part; read on to l…
Workplace bullying has increased with the use of email and social media. Retain evidence of this with email archiving to protect your employees.
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now