Useful Links

Deny sent email to other domain

Create a text file by using vim:

 sudo vim /etc/postfix/allowed_domains 

You may enter any text shown below:

documentscanned.com     OK
amerimerchant.com       554 Get a life and move on.
hotmail.com             REJECT
Convert the allowed_domain to allowed_domain.db for postfix to use:
/usr/sbin/postmap /etc/postfix/allowed_domains

Determine if hash table is used

/usr/sbin/postconf | grep database_type

Restart e-mail services

sudo /sbin/service postfix restart
sudo /sbin/service dovecot restart
sudo /sbin/service saslauthd restart
sudo /sbin/service httpd restart

HOWTO SMTP and IMAP/POP3 (simple version)

Install application and modify files:

sudo yum remove sendmail
sudo yum install postfix cyrus-sasl dovecot
sudo cp /etc/postfix/main.cf /etc/postfix/maincf_backup
sudo vim /etc/postfix/main.cf

#Change the the setting to the following:
myhostname = documentscanned.com
mydomain = documentscanned.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, $mydomain
or
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 192.168.1.0/24, 127.0.0.0/8

#Enter the following info to the main.cf file.
#Allow SMTP Auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes


smtpd_recipient_restrictions =
   check_recipient_access hash:/etc/postfix/allowed_domains, reject
   permit_sasl_authenticated
   permit_mynetworks
   check_relay_domains


#every client must provide a HELO before beginning the rest of the SMTP session.
#Some spam software does not send a HELO, and by using this option you may
#successfully block such bone-headed software.
smtpd_helo_required = yes

#client must to tell Postfix who the e-mail is from (MAIL FROM)
#and where to send it to (RCPT TO)
strict_rfc821_envelopes = yes

Modify smtp settings:

sudo cp /etc/dovecot.conf /etc/dovecotconf_backup
vim vim /etc/dovecot.conf

protocols = imap imaps pop3 pop3s
mechanisms = plain login

auth default {
mechanisms = plain login
passdb pam {
}
userdb passwd {
}
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

Install webmail version and modify the settings:

yum install squirrelmail
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpdconf_backup
sudo vim /etc/httpd/conf/httpd.conf


######################################
# Setting up squirrelmail
#####################################

Alias /squirrelmail /usr/local/squirrelmail/www

<Directory /usr/local/squirrelmail/www>
   Options Indexes
   AllowOverride none
   DirectoryIndex index.php
   Order allow,deny
   allow from all
</Directory>


sudo /etc/init.d/postfix restart
sudo /etc/init.d/dovecot restart
sudo /etc/init.d/saslauthd restart
sudo /etc/init.d/httpd restart

Create Users:

/usr/sbin/adduser mhaque
passwd mhaque

HOWTO SMTP and IMAP/POP3

Setup Basic POP3/IMAP Mail Server in Centos/RHEL

Setting up a mail server can be quite initimidating if you are linux beginner.
I am posting here my simple and most basic mail server experiment which i conducted
with my VPS server so that my documentation could be helpful for those who want
to setup a pop3 or imap mail server..

What you Need

- Linux Server with Centos 4/5 (VPS or Dedicated)
- Apache 2 with PHP4 or later
- Postfix (SMTP server or MTA)
- Dovecot ( IMAP/POP3 server)
- Squirrelmail (A free Webmail)

We will be setting up the email server for local users where they can use
webmail or outlook express to access their email. We will be setting up a simple
and most basic mail server for local users.

What you should know?

Before we proceed to setup a mail server, the following 3 are most important
for delivering email to destination. If you dont then most of the email origination
from your server will land up on spam folders in major free email providers
like hotmail or aol etc..

1. DNS Entry for your mail server with MX record
2. Setup an SPF record (see openspf.org
)
3. Setup Domain Name Keys
4 . Reverse IP for your Mail Server

The most important of it setting up reverse IP for your mail server. You have
to ask your hosting provider to setup a reverse IP for your mail server. Most
email providers will lookup reverse dns for the emails originating from your
server to distinguish from spam.

Install Postfix (SMTP Server/MTA)

Postfix is fast and popular SMTP server and widely used. Its main job is to
relay mail locally or to intended destination outside the network. Some of the
most popular SMTP servers are sendmail, postfix and qmail.

By default sendmail comes pre-installed with centos. We will need need to remove
it and install postfix.

yum remove sendmail

yum install postfix

The configuration file is located at /etc/postfix/main.cf.
Edit the file and make sure you change the following lines with your domain
name.

myhost= mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, $mydomain

You have to be careful about $mydestination is because it restrictions receiving
emails by the server pertaining to domains.

NOTE: Make sure you uncomment inet_interfaces = localhost
if you are enabling all option. I often made that dreadful mistake leaving both
uncommented!

Setting up SASL + TLS

We have to also setup SASL with our postfix to authenticate our users who want
to send email outside of the permitted network. We dont want our mail server
to be open relay and thereby restricting sending mail only to the local users.
Without SASL authentication postfix will give relay access denied error if you
attempt to send mail outside of the network.

yum install cyrus-sasl

To enable SASL authentication open /etc/postfix/main.cf and
add the following lines

# SASL SUPPORT FOR CLIENTS
# The following options set parameters needed by Postfix to enable 
# Cyrus-SASL support for authentication of mail clients. 
# 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = 
   permit_sasl_authenticated, 
   permit_mynetworks, 
   check_relay_domains

Install Dovecot (POP3/IMAP Server)

Dovecot is a very popular POP3/IMAP server. The main difference between POP3
and IMAP is while accessing the your email with outlook if you use POP3 the
mail is downloaded to your computer and deleted from the server. With IMAP the
mail is retained in the server. IF any problem occurs while downloading the
emails are lost with POP3. The configuration file is located at /etc/dovecot.conf

yum install dovecot

Open the dovecot config file /etc/dovecot.conf and make the
following changes. You may need to comment or uncomment certain lines

protocols = imap imaps pop3 pop3s

Look for the line auth default and make these changes. Be
careful with the lines as they are heavily commented out.

auth default {
mechanisms = plain login
passdb pam {
}
userdb passwd {
}
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

Install Squirrelmail

Squirrelmail is a free webbased email can be very handy for your users to login
while they are mobile.

yum install squirrelmail

To setup the squirrelmail under apache, open /etc/httpd/conf/httpd.conf
and insert the following lines

Alias /squirrelmail /usr/local/squirrelmail/www
<Directory /usr/local/squirrelmail/www>
Options Indexes
AllowOverride none
DirectoryIndex index.php
Order allow,deny
allow from all
</Directory>

The squirrelmail configuration utility is located in /usr/share/squirrelmail/config/conf.pl

Run the configuration utility and set the server settings to SMTP and change
your domain name to example.com

/usr/share/squirrelmail/config/conf.pl

Before you access squirrelmail or mail restart all the services

/etc/init.d/postfix start
/etc/init.d/dovecot start
/etc/init.d/saslauthd start
service httpd restart

To access squirrelmail point your browser to http://www.domain.com/webmail
and the squirrelmail test page is located at http://domain.com/webmail/src/configtest.php

Before we login to squirrelmail, you will need to create users.

Create Local Users

Just create a localuser with adduser

adduser john

and update the password of john using

passwd john

Open squirrelmail and enter the username as john and the password

Using Outlook Express

To use outlook express create a mail account and try connecting to the server.

Email: john@domain.com
Incoming POP3 settings: mail.domain.com
Outgoing POP3 settings: mail.domain.com
UserName: john
Password: xxxx

NOTE: Before sending any outgoing email with outlook, make
sure you tick the My server requires authentication under server
settings.

FAQs

I am getting DNS error from my mail server? what entries should be
made in DNS zone file?

If you are using mail.domain.com then mail should have a CNAME record in your
dns zone file along with the MX record for the domain.

domain.com. IN MX 1 domain.com.
mail IN CNAME domain.com.

How do i test whether mail server is working or not?

The simplest way to check for your mail server working is enter your domain
in pingability.com
or dnsstuff.com and check for the errors.
You may also want to find if it is not open relay. Check your log file /var/log/maillog
for any errors as well.

Another way to test your mail server is using telnet. You will get output like
the one below.

> telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.simplegerman.com ESMTP Postfix
ehlo simplegerman.com
250-mail.simplegerman.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

NOTE: If you are using firewall make sure you dont block mail
server ports.

 
public_howto/email_server.txt · Last modified: 2010/06/13 15:29 by Mainul Haque
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki