LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   How to configure sendmail to use Gmail as SMTP server? (http://www.linuxquestions.org/questions/slackware-14/how-to-configure-sendmail-to-use-gmail-as-smtp-server-802815/)

narke 04-19-2010 06:03 AM

How to configure sendmail to use Gmail as SMTP server?
 
Hi,

It seems my sendmail (running in slackware 13.0) cannot send out emails correctly. I guess I need to tell it what is the smtp server to use. And, I heard, gmail's smtp server is available to use for this purpose. Can anyone please help me to configure my sendmail this way?

Thanks in advance.

-
narke

ripp3r 04-19-2010 06:10 AM

Quote:

Originally Posted by narke (Post 3940100)
Hi,

It seems my sendmail (running in slackware 13.0) cannot send out emails correctly. I guess I need to tell it what is the smtp server to use. And, I heard, gmail's smtp server is available to use for this purpose. Can anyone please help me to configure my sendmail this way?

Thanks in advance.

-
narke

well the server address is smtp.gmail.com
And if you use the SSL the port will be 465

hope this help

narke 04-19-2010 10:29 AM

Quote:

Originally Posted by ripp3r (Post 3940108)
well the server address is smtp.gmail.com
And if you use the SSL the port will be 465

but ... how to set it with sendmail? and, how do i decide if i will use SSL or not?

thanks.


-
narke

Richard Cranium 04-19-2010 01:43 PM

You should read the files
Code:

/usr/share/sendmail/cf/cf/sendmail-slackware.mc
and
Code:

/usr/share/sendmail/cf/README
You would uncomment the
Code:

dnl define(`SMART_HOST',`mailserver.example.com')
line as well as setting the DAEMON_OPTIONS for the outbound portion.

ripp3r 04-20-2010 10:02 AM

And maybe this can help you a bit:

http://www.linuxhomenetworking.com/w...x_Mail_Servers

narke 04-20-2010 10:29 AM

hey! thank you for all your replies. i will dive to study to see if i can work it out. Thanks again!

narke 04-21-2010 08:46 PM

Quote:

Originally Posted by narke (Post 3941452)
hey! thank you for all your replies. i will dive to study to see if i can work it out. Thanks again!

hi, experts

after read some documents i now come back with a feeling that it is really not an easy thing to learn. on the other hand, my purpose is only to let my sendmail use gmail's smtp relay service, so i think i need a minimum example that show the points. learning from an example is easier than go through the very long sendmail manuals.

it will be highly appreciated if you can help.


P.S. my smtp host does not has a DNS MX record and gets a private IP address, it is behind a firewall, but i can access internet.


-
narke

T3slider 04-21-2010 09:00 PM

If you want the easy way out, get msmtp. It is an smtp *client* and does what you want without fuss. sendmail is by default an smtp *server*, but can be strong-armed into acting as an smtp client -- but as you have seen it is not simple.

dive 04-21-2010 10:16 PM

I did write a howto on using sendmail relay to the virginmedia server (link in sig). The vm server uses gmail so should be almost the same. The problem I found is that I had to use stunnel to create an ssl tunnel for sendmail to relay through.

So yes, msmtp is a much easier solution to it, and it's on slackbuilds.org.

dugan 04-22-2010 12:26 AM

Quote:

Originally Posted by T3slider (Post 3943377)
sendmail is by default an smtp *server*

My thoughts exactly.

Why would you use sendmail to send email to another smtp server? I don't know what setup you have, but it sounds as if anything would be simpler.

If you're simply trying to send emails with Mutt, then I third the suggestion for msmtp.

narke 04-22-2010 02:21 AM

Quote:

Originally Posted by dugan (Post 3943524)
My thoughts exactly.

Why would you use sendmail to send email to another smtp server? I don't know what setup you have, but it sounds as if anything would be simpler.

If you're simply trying to send emails with Mutt, then I third the suggestion for msmtp.

It's because my host is running some web services such wiki and a forum, their abilities of sending out email to users is based on the fact that the host gets smtp.

fancylad 04-22-2010 06:50 PM

i don't think that gmail wants smtp servers to be using them as a mail relay. google's smtp server is intended for emails destined for their users (ie users with a @gmail.com account). i doubt they would allow you to relay email through them. even if they did you would have to authenticate to their smtp server first and this is something that smtp servers normally do not do. usually if you want an smtp server to be able to relay email through another smtp server they would have to permit their ip in order to do this. i am not saying that what you want to do is impossible; however it is something that smtp servers generally do not do nor need to do. if you need to relay email through an smtp server you should probably be using your ISP's smtp server.

granth 04-22-2010 07:11 PM

Simple...


1. Obvious
Code:

su - root
2. Create your SSL certs
Code:

mkdir /etc/mail/certs
chmod 700 /etc/mail/certs
cd /etc/mail/certs
openssl req -new -x509 -keyout mykey.pem -out mycert.pem -days 3650

3. Create your auth credentials
Code:

mkdir /etc/mail/auth
chmod 700 /etc/mail/auth
cd /etc/mail/auth
echo 'AuthInfo:smtp.gmail.com "U:root" "I:youraddress@gmail.com" "P:yourpassword' > client-info
makemap -r hash client-info.db < client-info
chmod 600 client-info*

4. Modify the default sendmail configuration
Code:

cd /etc/mail
mv sendmail.cf sendmail.cf.orig
cp /usr/share/sendmail/cf/cf/sendmail-slackware.mc ./sendmail-gmail.mc

Edit /etc/mail/sendmail-gmail.mc so the following lines are after "OSTYPE(`linux')dnl":

Code:

define(`SMART_HOST',`smtp.gmail.com')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/mycert.pem')
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')

5. Compile your cf
Code:

m4 sendmail-gmail.mc > sendmail.cf
6. Restart sendmail
Code:

/etc/rc.d/rc.sendmail restart
7. Test it
Code:

echo "tester" | mailx -s "test email" sample@isp.com
8. Have a beer

EXTRA:
I believe gmail rewrites relayed message headers. However, some ISP-provided SMTP relays do not do this. Therefore, if your sendmail server does not have a FQDN, some spam filters will block your message.
This problem can be avoided by spoofing your headers. Using mutt, just add this line to your .muttrc :
Quote:

set envelope_from=yes
set from="My Name <my.address@isp.net>"
Let me know if you need any more help. Sendmail is an MTA. Most people don't understand this concept...
You are now on the road to enlightenment.


EDIT: If your ISP is blocking port 25, add this following line to your sendmail.mc to change the port to 587:
Code:

define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl

thatquietboy 04-22-2010 08:37 PM

mailertable
 
too much work, i use mailertable. just remember to
Code:

makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
after you edit it.

narke 04-22-2010 11:11 PM

It's very strange! Before I post the first message in the thread, I thought that my host should not have ability to send out email without really a try, because the host only have a private IP addres (10.x.x.x) and sit behind a firewall.

But, today after I really tried it, I found the story is actually a little different. It can send out message (via mutt) to my company email address, but it just can not send out message to external email adress (such as my gmail account). And, I have totally no idea how this can happen!

Here are mail log when I sent email to my company email adress:

---------------
Apr 23 10:27:10 svr21 sendmail[14162]: o3N2RAUo014162: from=woody, size=307, cla
ss=0, nrcpts=1, msgid=<20100423022710.GA14159@svr21.ap.foo.net>, relay=woody@localhost

Apr 23 10:27:10 svr21 sm-mta[14163]: o3N2RAvk014163: from=<woody@svr21.foocompany.com>, size=466, class=0, nrcpts=1, msgid=<20100423022710.GA14159@svr21.ap.foo.net>, proto=ESMTP, daemon=MTA, relay=cnzuhsv23.foocompany.com [127.0.0.1]

Apr 23 10:27:10 svr21 sendmail[14162]: o3N2RAUo014162: to=woody.wu@foocompany.com, ctladdr=woody (1000/100), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=3
0307, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o3N2RAvk014163 Message accepted for delivery)

Apr 23 10:27:12 svr21 sm-mta[14165]: STARTTLS=client, relay=mail.global.frontbridge.com., version=TLSv1/SSLv3, verify=FAIL, cipher=AES128-SHA, bits=128/128

Apr 23 10:27:15 svr21 sm-mta[14165]: o3N2RAvk014163: to=<woody.wu@foocompany.com>, ctladdr=<woody@svr21.foocompany.com> (1000/100), delay=00:00:05, xdelay=00:00:05, mailer=esmtp, pri=120466, relay=mail.global.frontbridge.com. [65.55.88.22], dsn=2.0.0, stat=Sent (<20100423022710.GA14159@svr21.ap.foo.net> Queued mail for delivery)
--------------------

And, here are mail log when I sent email to outside email address:

-------------------
Apr 23 10:52:07 svr21 sendmail[15765]: o3N2q716015765: from=woody, size=301, class=0, nrcpts=1, msgid=<20100423025207.GA15762@svr21.ap.foo.net>, relay=woody@localhost

Apr 23 10:52:12 svr21 sm-mta[15766]: o3N2q7Lv015766: from=<woody@svr21.foocompany.com>, size=458, class=0, nrcpts=1, msgid=<20100423025207.GA15762@svr21.ap.foo.net>, proto=ESMTP, daemon=MTA, relay=cnzuhsv23.foocompany.com [127.0.0.1]

Apr 23 10:52:12 svr21 sendmail[15765]: o3N2q716015765: to=narkewoody@gmail.com,ctladdr=woody (1000/100), delay=00:00:05, xdelay=00:00:05, mailer=relay, pri=30301, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (o3N2q7Lv015766 Messageaccepted for delivery)

Apr 23 10:52:15 svr21 sm-mta[15768]: o3N2q7Lv015766: to=<narkewoody@gmail.com>,ctladdr=<woody@svr21.foocompany.com> (1000/100), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=120458, relay=gmail-smtp-in.l.google.com. [72.14.213.27], dsn=2.0.0, stat=Sent (OK 1271991225 c19si1082758wam.6)
----------------------------

And, here is my /etc/resolve.conf
---------------------------
search ap.foo.net
nameserver 10.86.10.27
nameserver 10.86.10.21
----------------------------

Here is my /etc/hosts
-----------------------
127.0.0.1 cnzuhsv23.foocompany.com localhost
255.255.255.255 all-ones
10.86.12.26 svr21.foocompany.com svr21 es2.0 office
10.86.12.26 cnzuhsv23.foocompany.com
10.86.12.1 gateway
10.86.12.21 svr40
10.86.12.33 es2.1
10.86.12.64 lmt
218.104.197.115 ext-me
10.41.1.60 chzugsv1004
10.41.4.5 cnzuhnb639.ap.foo.net
----------------------


Could anyone please help me to do an analysis? Thanks a lot!

-
narke


All times are GMT -5. The time now is 07:33 PM.