Thursday, August 09, 2012

Sendmail configuration

NOTE: Make sure to take backup of original configuration file before making any changes to it.

Many times I have seen people complaining about their sendmail configuration.
So here I am going to explain configuration of sendmail on CentOS 5

NOTE: This is a simple configuration but if you want to insert some special permissions and authentications let me know I will try to help with additional info.

To start of  with the configuration initially you need to check for the presence of STARTLS and SASLv2 in your machine.
 

 # sendmail -d0.1 -bv root
 Version 8.13.8
 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
 MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6

 NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS

 TCPWRAPPERS USERDB USE_LDAP_INIT

 ============ SYSTEM IDENTITY (after readcf) ============

 (short domain name) $w = server

 (canonical domain name) $j = server.example.com

 (subdomain name) $m = example.com

 (node name) $k = server.example.com

 ======================================================== 

 (you should see something like this, so look for STARTTLS AND  SASLv2)

 


 # yum -y install sendmail
 
 # rpm -qa | grep sendmail
 sendmail-cf-8.13.8-2.el5

 sendmail-8.13.8-2.el5
 

make sure that you install sendmail-cf because while mapping sendmail.mc into sendmail.cf you need sendmail-cf as mentioned in the configuration file


 # vi /etc/mail/sendmail.mc

 define(`SMART_HOST', `smtp.gmail.com')dnl 

 # (add these two lines in your sendmail.mc file to listen on port 465 and 587)
 define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl

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

 # uncomment this line
 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

 
 # add this line
 FEATURE(`authinfo', `hash /etc/mail/auth/client-info.db')dnl

 FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl

 DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

 # uncomment for sendmail to listen on port 587
 DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

 # uncomment for sendmail to listen on port 587
 DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl 

 # write your domain and uncomment
 MASQUERADE_AS(`mydomain.com')dnl


 
Make a directory auth inside /etc/mail and assign proper permissions to auth so that no other user can access this directory

 # mkdir /etc/mail/auth
 # cd /etc/mail/auth


Create a new file client-info

 # vi client-info
 AuthInfo:gmail.com "U:username"  "P:Password"  "M:PLAIN"

 AuthInfo: "U:username"    "P:Password"  "M:PLAIN


 # makemap -r hash client-info.db < client-info


 #vi /etc/mail/access

 Connect:your-ip RELAY


 # m4 sendmail.mc > sendmail.cf

 # service sendmail restart

 # sendmail -v user@domain.com


NOTE: If you get any error message or you are unable to send mails even after following the above configuration kindly revert back with the log messages so that I can help you further for the same.




0 comments:

Post a Comment