您的位置:首页 > 其它

构建postfix邮件服务器(二)postfix和dovecot的安装,实现简单的收发邮件

2010-07-30 16:36 706 查看
一、准备

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 作者:稀饭的国度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐