This article describes how to setup a mail server in centos 6 . Here i have used three popular packages which is very easy to configure .
» Postfix ( for sending )
» Dovecot ( for receiving )
» Squirrelmail ( for webmail access )
This guide is strictly for learning purpose , not for real time servers .
Let’s start
Setup mail server in centos 6
» Installing and configuring postfix
» Installing and configuring dovecot
» Installing and configuring squirrelmail
» Installing and configuring postfix
Step 1 »Before installation assign a static ip and add a host entry for your domain to that IP in the /etc/hosts file like below.
192.168.0.15 krizna.com
Step 2 » Issue the below command to install postfix
[root@mail ~]# yum -y install postfix
Step 3 » Now issue the below command to install SMTP AUTH packages .
[root@mail ~]# yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain
Postfix package installation is completed .
Step 4 » Issue the below commands one by one for creating SSL Cert.
[root@mail ~]# mkdir /etc/postfix/ssl
[root@mail ~]# cd /etc/postfix/ssl/
[root@mail ssl]# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
[root@mail ssl]# chmod 600 smtpd.key
[root@mail ssl]# openssl req -new -key smtpd.key -out smtpd.csr
[root@mail ssl]# openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
[root@mail ssl]# openssl rsa -in smtpd.key -out smtpd.key.unencrypted
[root@mail ssl]# mv -f smtpd.key.unencrypted smtpd.key
[root@mail ssl]# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 365
Step 4 » Now open /etc/postfix/main.cf file .
Find and comment the below lines .
#inet_interfaces = localhost #---> line no 116
#mydestination = $myhostname, localhost.$mydomain, localhost #--> line no 164
and add these lines at the bottom of the file.
myhostname = mail.krizna.com mydomain = krizna.com myorigin = $mydomain home_mailbox = mail/ mynetworks = 127.0.0.0/8 inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain smtpd_sasl_auth_enable = yes smtpd_sasl_type = cyrus smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Step 5 » Now open /etc/postfix/master.cf file and add the below line after smtp
smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_sender=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o broken_sasl_auth_clients=yes
Step 6 » Now start postfix and saslauthd service
[root@mail ~]# service postfix start
[root@mail ~]# service saslauthd start
» Issue the below commands to start the postfix and saslauthd at startup
[root@mail ~]# chkconfig --level 235 postfix on
[root@mail ~]# chkconfig --level 235 saslauthd on
Step 7 » Now check your smtp connectivity . just telnet localhost on port 25 and type this command ehlo localhost
[root@mail ~]# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.krizna.com ESMTP Postfix
ehlo localhost <---- type this command
250-mail.krizna.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
If you get this output .. Great .. everything is fine till now.
» Installing and configuring dovecot
Step 8 » Issue this command to install dovecot
[root@mail ~]# yum -y install dovecot
Step 9 » After installation open /etc/dovecot/dovecot.conf file and add the below line at the end of the file. please make sure mail_location and home_mailbox in postfix configuration are using the same name.
protocols = imap pop3
mail_location = maildir:~/mail
pop3_uidl_format = %08Xu%08Xv
Step 10 » Now start dovecot service
[root@mail ~]# service dovecot start
» Issue the below command to start the dovecot at startup
[root@mail ~]# chkconfig --level 235 dovecot on
Step 11 » Now test your pop3 connectivity .
[root@mail ~]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
quit
+OK Logging out
Connection closed by foreign host.
Yes .. your server is ready to receive mails .
» Creating users and testing
Step 11 » Now create users to test your configuration.
[root@mail ~]# useradd -m bobby -s /sbin/nologin
[root@mail ~]# useradd -m leela -s /sbin/nologin
and create passwords for the users created
[root@mail ~]# passwd bobby
[root@mail ~]# passwd leela
Step 12 » Test your configuration in thunderbird . Refer the below image for configuration details.
Step 13 » Now you can send and receive mails using this server. In case of any issues please check the log file /var/log/maillog )
your mail server is ready …
» Installing and configuring squirrelmail
Step 14 » you need to add EPEL repository to install squirrelmail package. you can find latest EPEL repository rpm here ( http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/repoview/epel-release.html )
[root@mail ~]# rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm
Step 15 » Issue the below command to install squirrelmail.
[root@mail ~]# yum install squirrelmail
This command will install squirrelmail along with apache and php.
Step 16 » Now run the below command to configure squirrelmail .
[root@mail ~]# perl /usr/share/squirrelmail/config/conf.pl
»»» 1 »»» 1 »»» krizna (type Organization name ) »»» R ( return )
»»» 2 »»» 1 »»» ( hit space for empty Domain name ) and choose 3 »»» SMTP ( choose SMTP ) »»» R ( return )
»»» D »»» dovecot ( type ) »»» press enter with default
»»» s ( save and quit)
Step 17 » Open /etc/httpd/conf.d/squirrelmail.conf file and uncomment below lines
# RewriteCond %{HTTPS} !=on
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Step 18 » start apache service
[root@mail ~]# service httpd start
» Issue the below commands to start the httpd at startup
[root@mail ~]# chkconfig --level 235 httpd on
Step 19 » Now open http://serverip/webmail path in your browser . you could able to see the below page .
and after login
If any issues with apache check this page Installing Apache2 , Mysql server and PHP on Centos 6 (LAMP)
Also see :
» Setup mail server on centos 7
» Setup mail server on Ubuntu 14.04
Good luck.
Relay access denied.
pls help
Good set of instructions -thanks
For anyone getting Relay access denied you need to change the SMTP setting in Squirrel mail to login with IMAP user name and password (option B)
Relay access denied.
pls help
Good set of instructions -thanks
For anyone getting Relay access denied you need to change the SMTP setting in Squirrel mail to login with IMAP user name and password (option B)
At top of tutorial ”This guide is strictly for learning purpose , not for real time servers .” Why not for real time servers? What problems would be if use for real time servers?
Main reason is security. when it comes to real time servers, you should concentrate mainly on spam filters , antivirus , firewall etc…
check this one .. http://www.scalix.com/wiki/index.php?title=HowTos/Complete_Postfix
Hi Krizna
i use centos 6.5 it works fine on windows 7 tunderburd but on the local server(centos) say ” username or passed invalid olso say Configuration could not be verified” on the local i use olso tunderburd
At top of tutorial ”This guide is strictly for learning purpose , not for real time servers .” Why not for real time servers? What problems would be if use for real time servers?
Main reason is security. when it comes to real time servers, you should concentrate mainly on spam filters , antivirus , firewall etc…
check this one .. http://www.scalix.com/wiki/index.php?title=HowTos/Complete_Postfix
Hi Krizna
i use centos 6.5 it works fine on windows 7 tunderburd but on the local server(centos) say ” username or passed invalid olso say Configuration could not be verified” on the local i use olso tunderburd
Relay access denied !!!
Relay access denied !!!
Hi, can explain why all mails getting into /root/mail/new/ folder, but I need into user’s folder
Hi, can explain why all mails getting into /root/mail/new/ folder, but I need into user’s folder
receive mail ok but can’t send from thunderbird – error msg: Sending of message failed.
The message could not be sent because the connection to SMTP server smtp.englishquestion.com timed out. Try again or contact your network administrator.
chek /var/log/maillog as following;
warning: SASL: Connect to private/auth failed: Connection refused
fatal: no SASL authentication mechanisms
warning: process /usr/libexec/postfix/smtpd pid 19579 exit status 1
warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
Does any one know what is happening?
receive mail ok but can’t send from thunderbird – error msg: Sending of message failed.
The message could not be sent because the connection to SMTP server smtp.englishquestion.com timed out. Try again or contact your network administrator.
chek /var/log/maillog as following;
warning: SASL: Connect to private/auth failed: Connection refused
fatal: no SASL authentication mechanisms
warning: process /usr/libexec/postfix/smtpd pid 19579 exit status 1
warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
Does any one know what is happening?
Unable to connect
Firefox can’t establish a connection to the server at 192.168.50.11.
Can’t find out where I went wrong, doublechecked the config-files and I just can’t get into the webmail server.. It’s driving me crazy
Unable to connect
Firefox can’t establish a connection to the server at 192.168.50.11.
Can’t find out where I went wrong, doublechecked the config-files and I just can’t get into the webmail server.. It’s driving me crazy
oh ! thank you thank you thank you thank you thank you thank you
oh ! thank you thank you thank you thank you thank you thank you
It worked thanks very much
can u receive externe mail like yahoo, gmail etc. There is my problem
It worked thanks very much
can u receive externe mail like yahoo, gmail etc. There is my problem
Try to open smtp port 25 on your iptables
Hi ..!!
i have installed/configured postfix mail server and now i want to send mass mails, is there option to break those bulk mails into single mails and queue 1000 recipients to one after the other ?
Hi ..!!
i have installed/configured postfix mail server and now i want to send mass mails, is there option to break those bulk mails into single mails and queue 1000 recipients to one after the other ?
hi, I have setup postfix as per the steps mentuoned in this blog. however i am not able to received emails from external users. getting error msg in log file as “”NOQUEUE: reject: RCPT from Recipient address rejected: Access denied;””
Please help
hi, I have setup postfix as per the steps mentuoned in this blog. however i am not able to received emails from external users. getting error msg in log file as “”NOQUEUE: reject: RCPT from Recipient address rejected: Access denied;””
Please help
Great tutorial! Are the connection between the client (e.g. thunderbird) and server encrypted when sending emails via SMTP and receiving emails via IMAP? So a man in the middle can’t read my emails?
Great tutorial! Are the connection between the client (e.g. thunderbird) and server encrypted when sending emails via SMTP and receiving emails via IMAP? So a man in the middle can’t read my emails?
Just posting to say thanks for an excellent tutorial – this is the first time I’ve found all the information around configuration for Postfix, Dovecot and SSL/TLS in one place.
Followed it all through and it is all now working perfectly.
Only gotcha I found was getting mod_ssl installed and setup – followed the guide here:
https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-centos-6
And all good. Thanks Again !
Just posting to say thanks for an excellent tutorial – this is the first time I’ve found all the information around configuration for Postfix, Dovecot and SSL/TLS in one place.
Followed it all through and it is all now working perfectly.
Only gotcha I found was getting mod_ssl installed and setup – followed the guide here:
https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-centos-6
And all good. Thanks Again !
Hi Krizna,
After configuring everything (all up and running), when I login to squirrelmail it comes an error:
————————————————-
ERROR
Unknown user or password incorrect
————————————————-
Please help.
Thanks,
POM
Hi Krizna,
After configuring everything (all up and running), when I login to squirrelmail it comes an error:
————————————————-
ERROR
Unknown user or password incorrect
————————————————-
Please help.
Thanks,
POM
olso add in /etc/hosts your ” ip mail.ipyourip.com”