Wednesday, September 4, 2013

Install Postfix Mail Server with Dovecot and Squirrelmail on CentOS 6.4

Postfix is a free open source mail transfer agent (MTA). It is easy to administer, fast and as well as secure MTA. Its a alternative to Sendmail which is the default MTA for RHEL.
Prerequisites
1. Remove default MTA sendmail first:
[root@server ~]# yum remove sendmail
2. Setup DNS server and add the Mail server MX records in the forward and reverse zone files. To install and configure DNS server, navigate to this link. And you’ll need to contact your ISP to point your external static IP to your mail domain.
3. Add hostname entries in /etc/hosts file as shown below:
[root@server ~]# [root@server ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.200   server.unixmen.com      server
4. I disabled SELinux to reduce complexity in postfix configuration.
5. Install EPEL Repository:
[root@server ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
6. Allow the Apache default port 80 through your firewall/router:
[root@server ~]# vi /etc/sysconfig/iptables
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
Install Postfix
In this how-to, my testbox hostname and password are server.unixmen.com and 192.168.1.250 respectively. Change these values as per your scenario:
[root@server ~]# yum install postfix -y
Configuring Postfix
Open Postfix config file /etc/postfix/main.cf and find and edit the following lines:
## Line no 75 - Uncomment and set your mail server FQDN ##
myhostname = server.unixmen.com

## Line 83 - Uncomment and Set domain name ##
mydomain = unixmen.com

## Line 99 - Uncomment ##
myorigin = $mydomain

## Line 116 - Set ipv4 ##
inet_interfaces = all

## Line 119 - Change to all ##
inet_protocols = all

## Line 164 - Comment ##

#mydestination = $myhostname, localhost.$mydomain, localhost,

## Line 165 - Uncomment ##\
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

## Line 264 - Uncomment and add IP range ##
mynetworks = 192.168.1.0/24, 127.0.0.0/8

## Line 419 - Uncomment ##
home_mailbox = Maildir/
Save and exit the file. Start Postfix service now:
[root@server ~]# /etc/init.d/postfix start
[root@server ~]# /etc/init.d/postfix status
master (pid  1290) is running...
[root@server ~]# chkconfig postfix on
Testing Postfix mail server
Access the server via telnet and enter the commands shown in red colored text.
First create a testing user called “sk”:
[root@server ~]# useradd sk
[root@server ~]# passwd sk
[root@server ~]# telnet localhost smtp
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 server.unixmen.com ESMTP Postfix
ehlo localhost
250-server.unixmen.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<sk>
250 2.1.0 Ok
rcpt to:<sk>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
welcome to unixmen mail system
.
250 2.0.0 Ok: queued as 3E68E284C
quit
221 2.0.0 Bye
Connection closed by foreign host.
Now navigate to the user “sk” mail directory and check for the new mail:
[root@server ~]# ls /home/sk/Maildir/new/
1369816264.Vfd00I41ec0M251771.server.unixmen.com
A new mail is received to the user “sk”. To read the mail enter the following command:
[root@server ~]# cat /home/sk/Maildir/new/1369816264.Vfd00I41ec0M251771.server.unixmen.com 
Return-Path: <sk@unixmen.com>
X-Original-To: sk
Delivered-To: sk@unixmen.com
Received: from localhost (localhost [IPv6:::1])
    by server.unixmen.com (Postfix) with ESMTP id 3E68E284C
    for <sk>; Wed, 29 May 2013 14:00:36 +0530 (IST)
Message-Id: <20130529083047.3E68E284C@server.unixmen.com>
Date: Wed, 29 May 2013 14:00:36 +0530 (IST)
From: sk@unixmen.com
To: undisclosed-recipients:;

welcome to unixmen mail system
Installing Dovecot
Dovecote is an open source IMAP and POP3 mail server for Unix/Linux systems. To install:
[root@server ~]# yum install dovecot
Configuring Dovecot
Open the file /etc/dovecot/dovecot.conf file and edit as follows:
## Line 20 - umcomment ##
protocols = imap pop3 lmtp
Open /etc/dovecot/conf.d/10-mail.conf file and make the changes as shown below:
[root@server ~]# vi /etc/dovecot/conf.d/10-mail.conf 

## Line 24 - uncomment ##
mail_location = maildir:~/Maildir
Open /etc/dovecot/conf.d/10-auth.conf  and make the changes as shown below:
[root@server ~]# vi /etc/dovecot/conf.d/10-auth.conf 

## line 9 - uncomment##
disable_plaintext_auth = yes

## Line 99- Add a letter "login" ##
auth_mechanisms = plain login
Open the file /etc/dovecot/conf.d/10-master.conf and make changes as shown below:
[root@server ~]# vi /etc/dovecot/conf.d/10-master.conf 

## Line 83, 84 - Uncomment and add "postfix"
#mode = 0600
   user = postfix
    group = postfix
Start Dovecot service:
[root@server ~]# service dovecot start
Starting Dovecot Imap:                                     [  OK  ]
[root@server ~]# chkconfig dovecot on
Testing Dovecot
It’s time to test Dovecot configuration.
Enter the commands manually marked in red color:
[root@server ~]# telnet localhost pop3
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user sk
+OK
pass centos      ## Here centos is password of user "sk" ##
+OK Logged in.
list
+OK 1 messages:
1 427
.
retr 1
+OK 427 octets
Return-Path: <sk@unixmen.com>
X-Original-To: sk
Delivered-To: sk@unixmen.com
Received: from localhost (localhost [IPv6:::1])
    by server.unixmen.com (Postfix) with ESMTP id 3E68E284C
    for <sk>; Wed, 29 May 2013 14:00:36 +0530 (IST)
Message-Id: <20130529083047.3E68E284C@server.unixmen.com>
Date: Wed, 29 May 2013 14:00:36 +0530 (IST)
From: sk@unixmen.com
To: undisclosed-recipients:;

welcome to unixmen mail system
.
quit
+OK Logging out.
Connection closed by foreign host.
Now Dovecot is working.
Working with mail in command modes little bit difficult to us. So we will install a webmail client called Squirrelmail to send/receive emails via web browser.
Installing Squirrelmail
Make sure that you installed EPEL repository. Now install Squirrelmail using the following command:
[root@server ~]# yum install squirrelmail -y
Configuring Squirrelmail
Navigate to /usr/share/squirrelmail/config/ directory and run the command conf.pl:
[root@server ~]# cd /usr/share/squirrelmail/config/
[root@server config]# ./conf.pl
The following wizard will open. Enter choice 1 to set your organization details:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> 1
The following wizard will open:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : SquirrelMail
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : SquirrelMail $version
5.  Signout Page           : 
6.  Top Frame              : _top
7.  Provider link          : http://squirrelmail.org/
8.  Provider name          : SquirrelMail

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> 1
Again enter choice 1 to set your Organization name and enter all the details:
We have tried to make the name SquirrelMail as transparent as
possible.  If you set up an organization name, most places where
SquirrelMail would take credit will be credited to your organization.

If your Organization Name includes a '$', please precede it with a \. 
Other '$' will be considered the beginning of a variable that
must be defined before the $org_name is printed.
$version, for example, is included by default, and will print the
string representing the current SquirrelMail version.

[SquirrelMail]: unixmen mail
After setup all the details in the above wizard press S to save changes and press R to return back to your main menu:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Organization Preferences
1.  Organization Name      : unixmen mail
2.  Organization Logo      : ../images/sm_logo.png
3.  Org. Logo Width/Height : (308/111)
4.  Organization Title     : SquirrelMail $version
5.  Signout Page           : 
6.  Top Frame              : _top
7.  Provider link          : http://squirrelmail.org/
8.  Provider name          : SquirrelMail

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> s
Now enter R to setup mail server settings such as domain name and mail agent etc.:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> 2
Enter 1 and set your mail domain name:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Server Settings

General
-------
1.  Domain                 : localhost
2.  Invert Time            : false
3.  Sendmail or SMTP       : Sendmail

A.  Update IMAP Settings   : localhost:143 (uw)
B.  Change Sendmail Config : /usr/sbin/sendmail

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> 1
The domain name is the suffix at the end of all email addresses.  If
for example, your email address is jdoe@example.com, then your domain
would be example.com.

[localhost]: unixmen
Enter 3 and change from sendmail to Postfix MTA i.e. smtp:
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Server Settings

General
-------
1.  Domain                 : unixmen
2.  Invert Time            : false
3.  Sendmail or SMTP       : Sendmail

A.  Update IMAP Settings   : localhost:143 (uw)
B.  Change Sendmail Config : /usr/sbin/sendmail

R   Return to Main Menu
C   Turn color off
S   Save data
Q   Quit

Command >> 3
You now need to choose the method that you will use for sending
messages in SquirrelMail.  You can either connect to an SMTP server
or use sendmail directly.

  1.  Sendmail
  2.  SMTP
Your choice [1/2] [1]: 2
Now enter S and Q to save and exit Squirrelmail configuration.
Create a squirrelmail vhost in apache config file:
[root@server config]# vi /etc/httpd/conf/httpd.conf 
## Add the lines at the end of this file ##
Alias /squirrelmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
    Options Indexes FollowSymLinks
    RewriteEngine On
    AllowOverride All
    DirectoryIndex index.php
    Order allow,deny
    Allow from all
</Directory>
Restart Apache service:
[root@server config]# service httpd restart
Create users
Create some users for testing. In my case i create two users called “senthil” and “kumar” respectively.
[root@server ~]# useradd senthil
[root@server ~]# useradd kumar
[root@server ~]# passwd senthil
[root@server ~]# passwd kumar
Webmail
Now navigate to http://ip-address/webmail or http://domain-name/webmail from your browser. The following should appear. Enter the username and password of the user.
unixmen mail - Login - Mozilla Firefox_001
Let us compose a test mail from user “senthil” to user “kumar”.
unixmen mail - Login - Mozilla Firefox_001
Now login to user “kumar” mail and check for any new mail.
SquirrelMail 1.4.22-3.el6 - Mozilla Firefox_003

There it is. We have got ourselves a new email.

Link origin:http://www.unixmen.com/install-postfix-mail-server-with-dovecot-and-squirrelmail-on-centos-6-4/

Related Posts:

  • Sử dụng sar(Sysstat) cho Linux/Unix để giám sát hiệu suất hoạt động Chúng ta không thể cứ kè kè canh chừng chiếc máy tính khi chúng hoạt động. Bạn muốn biết chúng hoạt động như thế nào trong từng khoảng thời gian?? Sử dụng sar có thể giúp bạn thu thập dữ liệu, hiệu suất hoạt đ… Read More
  • REGULARLY FLUSHING THE MYSQL QUERY CACHE When we analyze our customers systems we see typically a high fragmentation of the query cache after a while. This leads to a less optimal use of the Query Cache than possible. With the following Query you can see the value… Read More
  • Tạo Syslog để theo dõi một số tiến trình trong LinuxVới người quản trị hệ thống việc theo dõi log hệ thống luôn là một trong những việc quan trọng nhất. Sau đây tôi xin giới thiệu Syslog, một công cụ ghi log khá phổ biến trên Linux.Syslog là một công cụ nhận biết và ghi lại tấ… Read More
  • Giới thiệu về Unix processLà một kỹ sư lập trình hệ thống, một server guy, hay là một sys admin, sys dev, sys ops,… phần lớn thời gian bạn sẽ phải làm việc trên hệ thống Unix. Để làm việc trên Unix, chúng ta tương tác với hệ điều hành thông qua các… Read More
  • 20 công cụ theo dõi hệ thống linux#1: top - Process Activity CommandThe top program provides a dynamic real-time view of a running system i.e. actual process activity. By default, it displays the most CPU-intensive tasks running on the server and updates the … Read More