18

I have a domain, let's call it foobar.com. All of the MX records for foobar.com point to Google's mail servers because I am using Google Apps for your domain to manage it. It's great because everyone gets all the advantages of GMail, but our e-mail addresses aren't @gmail.com.

I also have a server. Primarily, it's a web server, but it also serves other things. One of the things it serves is the web site for foobar.com and also sites for various virtual hosts such as shop.foobar.com and forum.foobar.com. The server is running Ubuntu 8.04, because I like using LTS releases in production.

The thing is, there are various applications running on the server that need the ability to send out emails. Various applications, like the cron jobs, send me e-mails in case of errors. Some of the web applications need to send e-mail to users when they forget their passwords, to confirm new registered users, etc. Lastly, it's nice to be able to send e-mail from the command line using the mail command, or mutt.

How can I setup the mail on the web server to go through the Google apps mail servers? I don't need the web server to receive mail, though that would be cool. I do need it to be able to send mail as any legitimate address @foobar.com. That way the forum application can send mails with forum@foobar.com in the from field, and the ecommerce application will have shop@foobar.com in the from field. Also, by sending the mail through the Google servers, we can avoid a lot of the problems with the e-mails being blocked by various spam filters on the web. Google's SMTP servers are trusted a lot more than mine would be.

I'm pretty good with administering Linux systems, but I am absolutely brain dead when it comes to e-mail. I need step by step directions from beginning to end on how to set this up. I need to know every thing to install, and every single change to the configuration files that is necessary. I have tried following various howtos and guides in the past, but none of them were quite right. Either they didn't work at all, or they offered a configuration that is not what I wanted.

Please help. Thanks.

Apreche
  • 1,405
  • 4
  • 17
  • 20

6 Answers6

20

Easiest way to do this is to avoid using exim and to use sSMTP which is a lightweight MTA.

All you need to do is install it:

sudo apt-get install ssmtp mailutils

and configure it (edit /etc/ssmtp/ssmtp.conf) to use your Google Mail servers see:

root=noreply@yourdomain.com
mailhub=smtp.gmail.com:587
UseSTARTTLS=yes
UseTLS=yes
AuthUser=youremail@yourdomain.com
AuthPass=password
FromLineOverride=YES

I've been using this set-up for a while now and it just works - It's also nice to not need to be running exim when it's not necessary and let Google's mail servers handle everything for you.

muffinresearch
  • 831
  • 6
  • 8
  • Sweet! It totally worked. You are my hero. – Apreche Aug 14 '09 at 23:24
  • I got this message; Package mailx is a virtual package provided by: mailutils 1:2.2+dfsg1-3 heirloom-mailx 12.5-1build1 bsd-mailx 8.1.2-0.20100314cvs-1 You should explicitly select one to install. E: Package 'mailx' has no installation candidate – Yasin Okumuş Jan 01 '12 at 00:33
  • Thanks for this. One thing I did find is that I had to enable "Less Secure Apps" in the google account for this user – mikestreety Feb 28 '17 at 22:09
3

Basically, it's very easy.

$ sudo dpkg-reconfigure exim4-config

Choose all things that make sense for you - as long as you choose something with a smarthost. When the question that asks you what smarthost to use comes, answer: smtp.gmail.com::587

Then edit the file /etc/exim4/passwd.client to match

gmail-smtp.l.google.com:login@yourappdomain.com:p@sSw0rd
*.google.com:login@yourappdomain.com:p@sSw0rd
smtp.gmail.com:login@yourappdomain.com:p@sSw0rd

And that does the job.

ssmtp also works fine, but appeared rather slow for mail delivery. Also, I prefer to have a deamon to connect to.

2

Keep in mind that free version of GMail has an outbound limit of ~500 messages / day. If you don't exceed this limit muffin's solution would work great for you.

sharjeel
  • 199
  • 1
  • 11
1

It is quite simple in postfix:

nano /etc/postfix/main.cnf

change the following

mydestination = mydomain.com, localhost.mydomain.com, localhost

to

mydestination = localhost.mydomain.com, localhost

reboot your server and you're done!

alfish
  • 3,027
  • 15
  • 45
  • 68
1

You should be able to use Google's mail servers as your SMTP gateway and authenticate with a user.

http://www.google.com/support/a/bin/answer.py?hl=en&answer=60730

Here's some basic psudocode to give you an idea:

smtpHost = smtp.gmail.com
smtpUsername = name@domain.com
smtpPassword = your_password
smtpType = tls
smtpPort = 465

UPDATE:

Here's a link which might help a little. Its not EXACTLY what I was looking for but reasonable enough (I hope) to give you an idea that it is possible to have cron jobs send email via google apps.

http://bakingnoodles.com/tag/linux/

This little app might prove useful as well (warning: I have not tried it myself)

http://linux.softpedia.com/get/Communications/Email/Email-2-6805.shtml


Another option might be to configure Postfix to use Google Apps for all of your mail delivery. If you search google for "configure postfix google apps" you'll find a bunch of links, including this one:

http://blog.twinklesprings.com/2008/03/27/remote-mail-delivery-for-google-apps-and-postfix-mail-server/

KPWINC
  • 11,274
  • 3
  • 36
  • 44
  • Does Ubuntu use postfix, or exim? If its exim like Debian, then dpkg-reconfigure exim4-config should give you the option of sending mail through a smarthost, and you should be able top configure that to gmail. – derobert Aug 14 '09 at 06:22
  • Postfix is the default Mail Transfer Agent (MTA) in Ubuntu. At least for 8.04 I believe. – KPWINC Aug 14 '09 at 06:31
  • I can't do the gateway options because I have the free Google Apps, not the pay version. Also, gateway doesn't seem like it does exactly what I want. I don't want to route any mails through my server. I just want the server to be able to send mails with any from address @mydomain. Also, I have tried smarthost in the past. It works, but all emails going out are labled as being from the user that I use to authenticate the smarthost. – Apreche Aug 14 '09 at 10:26
1

If you don't need to receive mail, you really don't need to send it through Google. If you setup your DNS records correctly, you should be able to send mail from the MTA on the web server.

If you are using SPF you'll want to make sure you update it to include your application server.

Zoredache
  • 128,755
  • 40
  • 271
  • 413