vkill'blog 何永鹏

archlinux SBS--mail server(1): postfix、dovecot 配置基本邮件收发系统

14:10 , vkill
最后修改20081002 --by:vkill

环境:
2.6.25-ARCH bind-9.5.0  postfix-2.5.3  dovecot-1.0.15
server ip : 192.168.252.77
系统已建好用户 admin 、user1 、user2 三用户,密码都是123456

目的:
只是实现基本的邮件收发功能,基于系统用户,即"本地网域+系统帐户"
所有root的信都由admin用户来收

实现步骤:

1、先安装 bind postfix dovecot

[root@myhost ~]# pacman -S bind postfix dovecot


2、配置bind
增加test.net主区域

[root@myhost named]# vi /etc/named.conf
#末行增加下面这段来添加主区域test.net
zone "test.net" IN {
        type master;
        file "test.net.zone";
};

test.net区域文件内容如下

[root@myhost ~]# vi /var/named/test.net.zone
$ORIGIN test.net.
@                       1D IN SOA       @ root (
                                        42              ; serial (yyyymmdd##)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum ttl

                        1D IN NS        @
                        1D IN A         192.168.252.77
mail                    1D IN A         192.168.252.77
@                       1D IN MX 10     mail
smtp                    1D IN CNAME     mail
pop3                    1D IN CNAME     mail
imap                    1D IN CNAME     mail

开启服务并测试MX记录是否生效

[root@myhost ~]# /etc/rc.d/named restart
[root@myhost ~]# host -t mx test.net
//如看到下面这段MX记录就已生效
test.net mail is handled by 10 mail.test.net.


3、配置postfix
配置postfix主配置文件

[root@myhost ~]# vi /etc/postfix/main.cf
#修改相应参数为相应的值,或者直接增加到文件最后
#================base-config================
myhostname = mail.test.net
mydomain = test.net
myorigin = $mydomain  //如邮头中未注明网域名称,则自动补用此参数设置的值
mydestination = localhost, $mydomain  //此参数列出postfix应将其视为"本地网域"的所有网域名称
mynetworks = 127.0.0.0/8, 192.168.252.0/24  //明确指出哪些主机可以享受转发服务
inet_interfaces = all  //指定postfix系统监听的网络接口
mail_spool_directory = /var/spool/mail  //系统邮件存储目录
alias_maps = hash:/etc/postfix/aliases  //别名文件的路径,默认已经写好的

配置别名文件

[root@myhost ~]# vi /etc/postfix/aliases
#默认已经写好一些的,我们只需在文件末增加一行
root:           admin

检查当前postfix配置、重建别名数据库文件并启动服务

[root@myhost ~]# postfix check
[root@myhost ~]# postalias /etc/postfix/aliases
[root@myhost ~]# /etc/rc.d/postfix restart

发信测试,实现user1发信给user2:

[root@myhost ~]# ktelnet smtp.test.net 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.test.net ESMTP Postfix
helo 000
250 mail.test.net
mail from:<user1@test.net>
250 2.1.0 Ok
rcpt to:<user2@test.net>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
hello,i am user1
.
250 2.0.0 Ok: queued as 6D1152D499
quit
221 2.0.0 Bye
Connection closed by foreign host.


4、配置dovecot
配置dovecot主配置文件

[root@myhost ~]# cp /etc/dovecot/dovecot-example.conf /etc/dovecot/dovecot.conf
[root@myhost ~]# vi /etc/dovecot/dovecot.conf
#修改相应参数为相应的值
base_dir = /var/run/dovecot/
protocols = imap pop3
listen = *
disable_plaintext_auth = no
#如disable_plaintext_auth != no则登陆时报错Plaintext authentication disallowed on non-secure connections
ssl_disable = yes
#如ssl_disable != yes则启动服务时报错Can't use SSL certificate /etc/dovecot/ssl/certs/dovecot.pem: No such file or directory
mail_location = /var/spool/mail/%u  //服务器邮箱的统一位置,这个要和你在postfix中设置的符合
protocol imap {
}
protocol pop3 {
    pop3_uidl_format = %u
}
auth default {
    mechanisms = plain
    passdb pam {
        args = dovecot
    }
    userdb passwd {
    }
    user = root
}

配置pam
因dovecot中passdb选择了pam,所以这里还要做pam认证,其实这里和默认的other内容完全一样,这就是为什么不做这一步也照样可以认证

[root@myhost ~]# vi /etc/pam.d/dovecot
auth            required        pam_unix.so
account         required        pam_unix.so
password        required        pam_unix.so
session         required        pam_unix.so

启动服务

[root@myhost ~]# /etc/rc.d/dovecot restart

收信测试,看看刚刚user1发给user2的信user2是否收到

[root@myhost ~]# ktelnet pop3.test.net 110
Trying 192.168.252.77...
Connected to mail.test.net.
Escape character is '^]'.
+OK Dovecot ready.
user user2
+OK
pass 123456
+OK Logged in.
stat
+OK 1 426
retr 1
+OK 426 octets
Return-Path: <user1@test.net>
X-Original-To: user2@test.net
Delivered-To: user2@test.net
Received: from 000 (unknown [192.168.252.77])
  by mail.test.net (Postfix) with SMTP id 3C6EE2D499
  for <user2@test.net>; Sun, 28 Sep 2008 12:20:37 -0700 (PDT)
Message-Id: <20080928192046.3C6EE2D499@mail.test.net>
Date: Sun, 28 Sep 2008 12:20:37 -0700 (PDT)
From: user1@test.net
To: undisclosed-recipients:;

hello,i am user1
.
quit
+OK Logging out.
Connection closed by foreign host.


5、好了,基本的邮件收发系统就好了,现在发封邮件给root,用admin用户来收信看看,也可以用windows下的Outlook Express软件来收发看看
Last modified by vkill on2008/10/11 12:07
类别:linux system | Tags: , , , , , , , | 0 条评论, 1248 次阅读
网友评论(0):
发表评论:

Nickname: 
Email:
Site URI: