Mail服务器配置
linux服务器中配置邮件服务器的软件大概有这三种:sendmail/postfix/qmail
以下利用postfix进行搭建邮件服务器
一:相关知识
MUA mail user agent 邮件用户代理 用于客户端发送邮件和阅读邮件
MTA mail tranfer agent 邮件传输代理 服务端软件,相当于是一个邮局,接收MUA发送过来的邮件,如果不是本地邮件,则发送给下一个MTA。
MDA mail delivery agent 邮件投递代理 将MTA所接收到的邮件,依照邮件的目的地将此邮件放到本机账号
--------------SMTP 允许中继----------
MTA 网易---------- MTA 新浪
| ----------------------------------------- |
|-------------------------------------------|
|SMTP -----------------------------------| MDA POP3
|-------------------------------------------|
[email protected]@sina.com
协议:
发信人:[email protected]
收信人: [email protected]
发信:
SMTP simple mail transfer protocol 简单邮件传输协议 端口号:TCP 25
smtps= smtp+ ssl/tls 端口:465
收信:
POP3 post office protocol 邮局协议 ,连接到MTA,读取或者下载邮件 端口号:110
pop3s=pop3+ssl/tls 端口:995
IMAP internet message access protocal 网络报文访问协议 能在下载邮件前先下载邮件头信息,以供用户选择性的下载 端口号:143
imap3s=imap3+ssl/tls 端口:993
二:涉及软件
(1)postfix
(2)dovecot
#yum install postfix dovecot -y
#/etc/init.d/postfix start -------启动
#netstat -ntlup |grep :25 -------查看启动端口 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 13999/master tcp 0 0 ::1:25 :::* LISTEN 13999/master
或者
# lsof -i:25 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME master 2993 root 12u IPv4 14370 0t0 TCP *:smtp (LISTEN) master 2993 root 13u IPv6 14372 0t0 TCP *:smtp (LISTEN)
三:发送邮件
(1)
# mail -s 'hello' [email protected] --s参数是定义主题
1111111111111111 --邮件正文
. --点号表示结束
Cc: --抄送,这里我直接回车表示结束
-----------------------------------------------------------------------------------------------------------------
(2)
# mail a --也是调用mail命令
Subject: hello a
i am root
.
Cc: b
------------------------------------------------------------------------------------------------------------------
(3)查看邮件
#cat /var/spool/mail/root
#cat /var/mail/root
------------------------------------------------------------------------------------------------------------------
(4)
# mail -s 'hello2' [email protected] < /etc/fstab
--把/etc/fstab的内容做为邮件的正文来发
-----------------------------------------------------------------------------------------------------------------
(5)
# telnet 127.0.0.1 25 --对25端口也就是smtp协议进行验证 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 li.cluster.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 3 Sep 2010 10:31:00 +0800 helo abc --介绍,打招呼(可以不用打招呼直接到mail from) 250 li.cluster.com Hello localhost.localdomain [127.0.0.1], pleased to meet you mail from:[email protected] --定义发送者,在这里随便定义 250 2.1.0 [email protected]... Sender ok rcpt to:[email protected] --定义接收者,在这里是本机的root用户 250 2.1.5 [email protected]... Recipient ok data --表示后面写的是邮件内容 354 Enter mail, end with "." on a line by itself test mail from qq.com --邮件正文 . --点号表示内容结束 250 2.0.0 o832V0tl004576 Message accepted for delivery quit --quit退出 221 2.0.0 li.cluster.com closing connection
------------------------------------------------------------------------------------------------------------
(6)通过mutt发送邮件
#yum install mutt -y
# mutt [email protected] --使用root用户给user1用户发送邮件,并且有发送附件等功能
#su - user1 --切换用户去查看邮件
-----------------------------------------------------------------------------------------------------------
(7)还可以安装其他的软件进行收发邮件,这里就不一一列举。
四:配合DNS进行搭建邮件服务器
linux客户端 ----------------------------DNS服务器 --------------------postfix服务器+dovecot
10.10.10.35-------10.10.10.15------10.10.10.15
|
|
|
客户端 windows xp
10.10.10.27
前期准备:
1,主机名和IP
2,时间同步
3,关闭iptables,selinux
4, 配置好yum
第一大步:配置DNS服务器和邮件交换记录
(1)先在15上把主机名和域定义好
#hostname mail.rootbug.com
#vim /etc/hosts
10.10.10.15 mail.rootbug.com
#vim /etc/sysconfig/network
HOSTNAME=mail.rootbug.com
(2)下面在10.10.10.15上做DNS
# yum install bind*
# vim /etc/named.conf
options { listen-on port 53 { any; }; --改为any listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; --改为any recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
---------------------------------------------------------------------------------------------------------------
# vim cat /etc/named.rfc1912.zones
zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "cluster.com" IN { --加上这一段,我的邮件域为cluster.com,跟主机名mail.rootbug.com不一样,方便理解和区分 type master; file "data/master.cluster.com.zone"; };
--------------------------------------------------------------------------------------------------------
# vim /var/named/data/master.cluster.com.zone
$TTL 3600 @ IN SOA rootbug. rootbug. ( 2013101001 30 60 90 3600 ) IN NS 10.10.10.15. IN MX 0 10.10.10.15. --加上这一句,MX是邮件交换记录,0代表优先级别,0-20,0代表优先级最高 dns IN A 10.10.10.15 mail IN A 10.10.10.15 --这个是邮件服务器的域名,因为我这里和DNS模拟做成同一台,所以IP相同
--------------------------------------------------------------------------------------------------------
#/etc/init.d/named restart
(3)在客户端上把DNS指向DNS服务器,然后进行验证
----下面的验证是linux上做的,但是在XP的cmd命令行模式也是一样的命令来验证
# nslookup mail.cluster.com Server: 10.10.10.15 Address: 10.10.10.15#53 Name: mail.cluster.com Address: 10.10.10.15 # nslookup --验证邮件交换记录 > set type=mx > cluster.com --这里写域,不是域名 Server: 10.10.10.15 Address: 10.10.10.15#53 cluster.com mail exchanger = 0 10.10.10.15.
第二大步:在linux客户端安装邮件客户端软件claws-mail或者thunderbird windows客户端自带outlook,不用安装。
(1)安装图形邮件客户端claws-mail
# tar xvf libetpan-0.57.tar.gz -C /usr/src/ --------IMAP4和NNTP支持,要先装这个包才能编译claws-mail-------- #tar xvf claws-mail-3.5.0.tar.gz -C /usr/src/ #cd /usr/src/libetpan-0.57/ #./configure #make #make install #cd /usr/src/claws-mail-3.5.0/ #./configure #make #make install
--安装完成后,使用claws-mail &命令来打开,如果报找不到libetpan.so.13这个库文件,则使用下面的命令做一个软链接
# ln -s /usr/local/lib/libetpan.so.13 /lib/libetpan.so.13
--注意:如果用的是rhel6的64位的话,则ln -s /usr/local/lib/libetpan.so.13 /lib64/libetpan.so.13
(2)你或者也可以用thunderbird
# tar xf thunderbird-zh-17.0.4.tar.bz2 -C /usr/local # cd /usr/local/thunderbird/ # ./thunderbird
-------直接使用这个命令去打开
------打开时暴库不存在,用yum安装后再打开----
# yum install libxul.so
第三大步:配置postfix和dovecot
(1)配置postfix
#vim /etc/postfix/main.cf myhostname = mail.rootbug.com --本机主机名 mydomain = cluster.com --本机域名,postfix会自动扣除第一点号前的部分作为域名。如果不是FQDN形式的主机名,就一定要手动配置你的域名 myorigin = $mydomain inet_interfaces = all --监听所有 mydestination = $myhostname, localhost.$mydomain, localhost ,$mydomain --加上$mydomain,则表示可以直接以域名来收邮件 mynetworks = 10.10.10.0/24, 127.0.0.0/8 --信任网络,在这里也可以不配,因为默认值为subnet,也就是本网段内的都是信任网络
---------------------------------------------------------------------------------------------------------
#/etc/init.d/postfix restart
# netstat -ntlup |grep :25 --验证端口 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3289/master tcp 0 0 :::25 :::* LISTEN 3289/master
---------------------------------------------------------------------------------------------------------
(2)配置dovecot
# vim /etc/dovecot/dovecot.conf protocols = imap pop3 lmtp --打开这行的注释,在20行 login_trusted_networks = 10.10.10.0/24 --打开并配置这一行,表示能够成功登录的信任网络,大概在38行 # vim /etc/dovecot/conf.d/10-mail.conf mail_location = mbox:~/mail:INBOX=/var/mail/%u --打开这行的注释,在25行 #/etc/init.d/dovecot restart # netstat -ntlup |grep :110 tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4802/dovecot tcp 0 0 :::110 :::* LISTEN 4802/dovecot
--------------------------------------------------------------------------------------------------------------
(3)假设公司这个邮件服务器有两个员工的账号,做为管理员在邮件服务器上创建这两个用户,并给密码(高级的做法,可以把账号做到数据库里来管理)
# useradd zhangsan # useradd lisi # echo 123 | passwd --stdin zhangsan # echo 123 | passwd --stdin lisi
第四大步:
(1)配置两个客户端,只要是配置 thunderbird和 claws和outlook(配置过程省略)
(2)发邮件测试
利用图形邮件工具(thunderbird和 claws和outlook)进行收发邮件
zhangsan发一封邮件给lisi,一切OK。