一、准备
1.在 http://mirror.postfixchina.org/ 下载好postfix-2.6.5.tar.gz
2.在http://www.dovecot.org 中下载好dovecot-1.1.16.tar.gz
Dovecot是一个安全性较好的POP3/IMAP服务器软件,响应速度快而且扩展性好
注意:所有源码包都放在 /postfix-an 目录下,解压也是在此目录下
3.停止sendmail
①Service sendmail stop
②chkconfig –level 35 sendmail off
4.修改主机名
①hostname mail.hongyi.com 把系统的主机名修改为你的域名
②vi /etc/sysconfig/network 把HOSTNAME= 修改为 mail.hongyi.com
③vi /etc/hosts 添加你主机的IP和对应的主机名
192.168.18.138 mail.hongyi.com
二、安装postfix
(一)、创建运行postfix服务的用户postfix ,组帐号 postfix、postdrop
①groupadd -g 1200 postdrop -g 1200表示gid为1200 这个数字随便只要不重复就行
②groupadd -g 1000 postfix -g 1000表示gid为1000 这个数字随便 只要不重复就行
③useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
-M 表示不建立宿主目录 –u 1000 uid为1000
-g postfix 主要的组为 postfix -G postdrop辅助组为gostdrop
-s /sbin/nologin 表示不能登入系统
(二)、解压
tar zxvf postfix-2.6.5.tar.gz
(三)、预配置编译参数
1)先进入解压后的目录 cd postfix-2.6.5
2)预配置,使postfix支持SASL认证和查询mysql数据库
make makefiles \
> ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_CYRUS_SASL -I/usr/include/sasl’ \
> ‘AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
> -L/usr/lib/sasl2 -lsasl2 ‘
上面 的写法是方便排版,用了分行符,既每个 \ 后面要回车一次 “‘”不能少
CCARGS参数:为C语言编译器提供额外的参数(C-language Compiler Arguments ),-I选项(字母i的大写)指出额外的头文件的存放目录
AUXLIBS参数:指出位于标准位置之外的额外/辅助的函数库(Auxiliaries Libraries),-lmysqlclient、-lz、-lm、-lsasl2中的”l“为字母L的小写
如果还需要postfix支持TLS加密传输,则配置参数可调整为:
make makefiles \
> ‘CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \
> -DUSE_SASL_AUTH \
> -DUSE_TLS \
> -DUSE_CYRUS_SASL -I/usr/include/sasl’ \
> ‘AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
> -L/usr/lib/sasl2 -lsasl2 \
> -lssl -lcrypto ‘
(四)、编译,安装
make ; make install
在安装时要设置一些安装参数,一路回车就行
install_root: [/] //指定系统的根目录
tempdir: [/postfix-an/postfix-2.6.5] //指定postfix-install脚本使用的临时文件目录
config_directory: [/etc/postfix] //设置postfix的配置文件目录
command_directory: [/usr/sbin] //设置postfix命令的存放目录
daemon_directory: [/usr/libexec/postfix]
data_directory: [/var/lib/postfix]
html_directory: [no]
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]
(五)、简化配置文件
①cd /etc/postfix //进入配置文件所在的目录
②postconf –n > main2.cf //把含义注释的主配置文件,生成出新不含注释的文件
③mv main.cf main.cf.bak //把原始的主配置文件改名,既备份它
④mv main2.cf main.cf //把新生成的文件改名为主配置文件的名字,既新的主配置文件
(六)、配置main.cf
Vi /etc/postfix/main.cf
在原有的配置下加入下面内容
inet_interfaces = all \\postfix服务监听的IP地址 all表示所有,可以是个IP或网段
myhostname = mail.hongyi.com \\postfix服务器使用的主机名
mydomain = hongyi.com \\postfix服务器使用的邮件域
myorigin = $mydomain \\设置外发邮件时,发件人地址中的邮件域名,这里表示同mydomain
mydestination = $mydomain, $myhostname \\设置可以接收的邮件地址中的域名
home_mailbox = Maildir/ \\设置邮件存储位置和格式
1)在main.cf文件中的配置格式与Shell变量赋值的形式非常类似,采用“配置参数 = 值”的形式,等号“=”两边的空格可有可无
2)当配置参数的值包含多个内容时,以逗号、空格或换行分隔;参数值不能用单引号或双引号,否则会被视为参数值的一部分
3)关于main.cf配置文件中的常见配置参数,elinks html/index.html
4)postfix支持2种最常见的邮箱存储方式(当指定的存储位置最后一个字符为“/”时,自动使用Maildir存储方式)
①Mailbox:将同一用户的所有邮件内容存储在同一个文件中, 例如 “/var/spool/mail/username”,这种方式比较古老,在邮件数量较多时查询和管理的效率较低
②Maildir:使用目录结构来存储用户的邮件内容,每一个用户对应有一个文件夹,每一封邮件作为一个独立的文件保存,例如/home/username/Maildir/*。这种方式存取速度和效率更好,而且对于邮件内容管理也更方便
(七)、启动
postfix start 启动
postfix stop 停止
postfix check 检查
postfix reload 修改配置文件后重载,而不用重启
三、安装Dovecot
(一)创建dovecot用户
useradd -M -s /sbin/nologin dovecot
(二)解压
tar zxvf dovecot-1.2.10.tar.gz
(三)、预配置
cd dovecot-1.2.10
./configure –sysconfdir=/ect –with-mysql
–sysconfdir 设定的是配置文件的存放位置
–with-mysql 设定dovecot支持MySQL数据库认证,这里提前加上为实现虚拟用户做准备
(四)编译,安装
make ; make install
(五)建立dovecot.conf配置文件
cp /etc/dovecot-example.conf /etc/dovecot.conf
(六)修改配置文件
Ssll_disable =yes \\禁用SSL机制
protocols = pop3 imap \\指定支持的邮局协议,还可以添加pop3s和imaps但是需要添加CA证书相关设置
disable_plaintext_auth = no \\允许明文密码认证是不安全的,但在未启用加密认证前,需要用到明文密码
mail_location = maildir:~/Maildir \\邮件存储格式及位置
(七)创建PAM认证文件
vi /etc/pam.d/dovecot
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
1)Dovecot使用PAM方式( Pluggable Authentication Module,可插拔认证模块)进行身份认证,以便识别并验证系统用户,通过认证的用户才允许从邮箱中收取邮件
2)—— auth、account、session分别表示登录身份认证、帐号属性认证、登陆中的会话认证(打开文件、挂载设备等资源)
3)—— required 表示此行记录中的认证必须通过,否则即认为认证失败
4)—— include 表示包含其他文件中的认证配置(system-auth对应为/etc/pam.d/system-auth文件)
(八)启动dovecot服务
/usr/local/sbin/dovecot -c /etc/dovecot.conf
1)可以把启动命令写进/etc/rc.d/rc.local文件,以使系统启动时能够自动启动dovecot服务。
# echo “/usr/local/dovecot/sbin/dovecot” >> /etc/rc.d/rc.local
2)使用“-c”选项可以指定所使用的配置文件的位置,如果使用默认的配置文件,则直接执行“dovecot”命令即可
3)特别说明的是dovecot软件包没有提供启动和关闭的服务控制脚本,所以关闭dovecot稍微有点麻烦,可首先执行dovecot命令获得正在运行的dovecot服务的进程号(或者查看/usr/local/var/run/dovecot/master.pid文件获得进程号),然后使用kill命令关闭
4)补充:官方的dovecot关闭脚本
#!/bin/sh
# master.pid is written to directory pointed by base_dir setting.
# /var/run/dovecot/ is a common location for it.
base_dir=`dovecot -a | grep ^base_dir: | sed ’s/^[^:]*: //’`
kill `cat $base_dir/master.pid`
四、测试
(一)建立两个系统账号xiao 和qi 密码都是123
1)useradd –s /sbin/nologin xiao
pass xiao 123
2)useradd –s /sbin/nologin qi
pass qi 123
(二)测试stmp发送邮件
用telnet命令 登录邮件服务器的25号端口,输入smtp命令测试,发件人为xiao@hongyi.com
收件人为qi@hongyi.com
1)telnet localhost 25
如果出现:220 mail.hongyi.com ESMTP Postfix 表示登入成功
2)helo localhsot //宣告客户机主机地址
出现: 250 mail.hongyi.com 表示成功
3)mail from: xiao@hongyi.com //告诉服务器发件人的地址
出现:250 2.1.0 Ok 表示成功
4)rcpt to: qi@hongyi.com //告诉服务器收件人的地址
出现:250 2.1.5 Ok 表示成功
5)data //告诉服务器要传输数据
出现:354 End data with <CR><LF>.<CR><LF> 表示成功
7)subject: a test mail //设置邮件主题
8)test //邮件的内容
9). //输入信件的内容后,最后以“.”表示结束
250 2.0.0 Ok: queued as F3D1B1BCF43
10)quit //断开连接退出
221 2.0.0 Bye
Connection closed by foreign host.
(三)测试pop3收邮局
用telnet命令 登录邮件服务器的110号端口,输入POP3命令测试,刚刚发给 qi@hongyi.com的邮件是否收到
1)telnet localhost 110
出现:+OK Dovecot ready. 表示成功
2)user qi //使用系统用户qi登录 出现:+OK表示成功
3)pass 123 //登入密码 出现:+OK Logged in.表示成功
4)list //查看邮件列表 出现:+OK 1 messages: 1 456 “1“表示有一封邮件
5)retr 1 收取并查看邮件1
6)邮件的内容
Return-Path: <xiao@hongyi.com> //退信地址
X-Original-To: qi@hongyi.com //来源地址
Delivered-To: qi@hongyi.com //提交目标地址
Received: from localhsot (localhost.localdomain [127.0.0.1])
by mail.hongyi.com (Postfix) with SMTP id F3D1B1BCF43 //经由哪些MTA接收
for <qi@hongyi.com>; Fri, 12 Feb 2010 22:53:23 +0800 (CST)
subject: a test mail //主题
Message-Id: <20100212145401.F3D1B1BCF43@mail.hongyi.com>
Date: Fri, 12 Feb 2010 22:53:23 +0800 (CST)
From: xiao@hongyi.com //发件人地址
To: undisclosed-recipients:;
test
7)quit //退出
本文转自:http://blog.thematice.com 作者:稀饭的国度