postfix是一个高效的邮件服务器,配置比sendmail简单,这里使用LAMP+postfix+dovecot+SquirrelMail搭建提供SMTP/POP3/IMAP的简单邮件服务。系统是CentOS6.2。
简单说明:
postfix是一个MTA即邮件传输代理。作为收件服务器。
dovecot是一个开源的IMAP和POP3邮件服务器。作为发件服务器。
准备工作:
1、卸载sendmail
yum remove sendmail
2、安装LAMP
yum install httpd mysql mysql-devel mysql-server php php-mysql php-bcmath php-gd php-mbstring php-xml php-imap
配置LAMP过程略过。
一、安装postfix
使用源码编译安装。
1、建立postfix所需的用户和组
建立postfix、postdrop组和postfix用户:
groupadd -g 2001 postfix
useradd -g postfix -u 1001 -s /sbin/nologin -M postfix
groupadd -g 2002 postdrop
2、安装必备软件包
yum install db*-devel
3、到官网http://www.postfix.org/ 找一个下载点下载postfix,目前稳定版为Postfix 2.9
cd /tmp
wget ftp://ftp.reverse.net/pub/postfix/official/postfix-2.9.3.tar.gz
tar -zxvf postfix-2.9.3.tar.gz
cd postfix-2.9.3
更新makefile文件,添加mysql、sasl认证支持:
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/include/mysql \
-DUSE_SASL_AUTH \
-DDEF_SERVER_SASL_TYPE=\"dovecot\"' \
'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm'
备注:-DUSE_SASL_AUTH表示启用SASL认证,-DDEF_SERVER_SASL_TYPE=\"dovecot\"表示使用dovecot做SASL模块。
继续安装:
make
make install
4、make install执行后会调用postfix-install脚本
这里设置如下,空白为直接按回车。
install_root: [/]
tempdir: [/tmp/postfix-2.9.3] /tmp/postfix
config_directory: [/etc/postfix]
command_directory: [/usr/sbin]
daemon_directory: [/usr/libexec/postfix]
data_directory: [/var/lib/postfix]
html_directory: [no] /var/www/html/postfix
mail_owner: [postfix]
mailq_path: [/usr/bin/mailq]
manpage_directory: [/usr/local/man]
newaliases_path: [/usr/bin/newaliases]
queue_directory: [/var/spool/postfix]
readme_directory: [no]
sendmail_path: [/usr/sbin/sendmail]
setgid_group: [postdrop]
postfix安装在/usr/sbin/postfix,随后可以访问http://IP/postfix,查看Postfix Documentation。
5、检验postfix是否支持Dovecot SASL
postconf -a
结果显示dovecot,说明支持。
其它postconf命令:
postconf -n
postconf -m
postconf -d
二、安装dovecot
官网:http://dovecot.org,目前稳定版为dovecot 2.1.8。
1、安装必备软件包
yum install pam pam-devel
2、编译安装dovecot
cd /tmp
wget http://dovecot.org/releases/2.1/dovecot-2.1.8.tar.gz
tar -zxvf dovecot-2.1.8.tar.gz
cd dovecot-2.1.8
./configure --with-sql --with-mysql --with-ssl=openssl --with-pam
make
make install
dovecot安装在/usr/local/sbin/dovecot。
三、配置postfix
这里域名为live-in.org,FQDN(fully-qualified domain name)为mail.live-in.org。
0、修改主机名
hostname mail.live-in.org
vim /etc/hosts
127.0.0.1 mail.live-in.org localhost
1、编辑配置文件/etc/postfix/main.cf:
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
vim /etc/postfix/main.cf
1)设置邮件系统的主机名(FQDN)
找到:
#myhostname = host.domain.tld
修改为相应的域名:
myhostname = mail.live-in.org
2)设置本地域名
默认是将myhostname的第一部分去掉作为mydomain。
找到:
#mydomain = domain.tld
修改为相应的域名:
mydomain = live-in.org
3)设置发件人所在域名
找到:
#myorigin = $mydomain
去掉注释:
myorigin = $mydomain
这里和mydomain设置成一样。
4)设置postfix要接收邮件的域名
找到:
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
去掉注释:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
5)不传递来自其它主机的邮件
找到:
#mynetworks_style = host
去掉注释:
mynetworks_style = host
6)设置postfix监听的网络接口
找到:
#inet_interfaces = all
去掉注释:
inet_interfaces = all
7)找到:
#alias_maps = hash:/etc/aliases
去掉注释:
alias_maps = hash:/etc/aliases
是为了防止出现警告信息:warning: dict_nis_init: NIS domain name not set - NIS lookups disabled。
8)设置邮件存储位置和格式
找到:
#home_mailbox = Maildir/
去掉注释:
home_mailbox = Maildir/
2、设置使用dovecot作为SASL认证,在最后加入:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
3、启动postfix
/usr/sbin/postfix start
四、配置dovecot
1、复制样例配置文件
cd /usr/local/etc/dovecot
cp -R /usr/local/share/doc/dovecot/example-config/* /usr/local/etc/dovecot/
2、编辑配置文件dovecot.conf
vim dovecot.conf
找到以下几句将前面的注释去掉:
protocols = imap pop3 lmtp
listen = *, :: 修改为 listen = *
base_dir = /var/run/dovecot/
3、编辑配置文件10-master.conf
vim conf.d/10-master.conf
1)找到service auth块中的以下两句:
#unix_listener /var/spool/postfix/private/auth {
#mode = 0666
修改为:
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
2)找到:
default_login_user = dovenull
default_internal_user = dovecot
将注释去掉。
4、编辑配置文件10-auth.conf
vim conf.d/10-auth.conf
1)找到:
#disable_plaintext_auth = yes
修改为:
disable_plaintext_auth = no
允许明文密码验证。
2)找到:
auth_mechanisms = plain
修改为:
auth_mechanisms = plain login
使Outlook能使用与接收邮件服务器相同的设置认证SMTP。
5、编辑配置文件10-mail.conf
vim conf.d/10-mail.conf
找到:
#mail_location = maildir:~/Maildir
去掉注释:
mail_location = maildir:~/Maildir
6、建立dovecot用户
useradd -M -s /sbin/nologin dovenull
useradd -M -s /sbin/nologin dovecot
7、建立PAM认证文件
vim /etc/pam.d/dovecot
添加:
auth required pam_unix.so account required pam_unix.so
8、查看配置文件是否有错
dovecot -n
没有报错即可。
9、启动dovecot
dovecot
报错:
doveconf: Fatal: Error in configuration file /usr/local/etc/dovecot/conf.d/10-ssl.conf line 12: ssl_cert: Can't open file /etc/ssl/certs/dovecot.pem: No such file or directory
是找不到/etc/ssl/certs/dovecot.pem文件。
进入dovecot解压后的源代码目录:
cd /tmp/dovecot-2.1.8/doc
mkdir -p /etc/ssl/certs
mkdir -p /etc/ssl/private
sh mkcert.sh
再次启动dovecot
dovecot
10、日志文件
这里postfix和dovecot日志都在/var/log/maillog里。
11、在域名的DNS解析处添加一个mail二级域名的A记录,和MX邮件交换记录。
自建的邮箱发给gmail和hotmail认为是垃圾邮件。还要做一个邮箱域名反向解析。即mail.xxx.com的A记录指向邮件服务器的IP,还要把该IP的PRT指向到mail.xxx.com。IP反向解析需要联系上级的ISP来做了。因为我们对邮件域名有管理权,但对这个IP没有管理权。
12、整理下思路
这里设置的邮件用户为Linux系统内的实际用户,使用pam验证密码,邮件存储在~/Maildir(家目录下的Maildir目录中)。
但是root用户没有/home/root/Maildir这个目录如何收发邮件呢?
vim /etc/aliases
在最后加入:
root: test3
做一个别名重定向,随后更新资料库:
newaliases
建立test3用户:
useradd test3
另外好像root用户不能用POP3、IMAP登录发邮件?
五、安装SquirrelMail
SquirrelMail是一个基于PHP的webmail邮件系统。目前稳定版为squirrelmail-webmail-1.4.22。
1、下载SquirrelMail
cd /tmp
wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fprdownloads.sourceforge.net%2Fsquirrelmail%2Fsquirrelmail-webmail-1.4.22.tar.gz
tar -zxvf squirrelmail-webmail-1.4.22.tar.gz
mv squirrelmail-webmail-1.4.22 /var/www/html/webmail
chown -R apache:apache /var/www/html/webmail
2、配置参数
cd /var/www/html/webmail
./configure
会看到一个可选择的菜单,要修改几个地方:
输入D(Set pre-defined settings for specific IMAP servers),再输入dovecot
输入2(Server Settings),再输入1,设置Domain
输入10(Languages),再输入1,设置Default Language为zh_CN
输入10(Languages),再输入2,设置Default Charset为UTF8
建立SquirrelMail Data和Attachment:
mkdir -p /var/local/squirrelmail/data/
mkdir -p /var/local/squirrelmail/attach/
chown -R apache:apache /var/local/squirrelmail
访问:http://IP/webmail 登录SquirrelMail。
参考资料:
http://www.postfix.org/STANDARD_CONFIGURATION_README.html
http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL
http://www.postfix.org/MYSQL_README.html
http://blog.csdn.net/stuartjing/article/details/6792508
http://hi.baidu.com/delphiss/blog/item/38571c94f7a7d50e7af48052.html