电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序、电子邮件箱等。它是为用户提供全由E-mail服务的电子邮件系统,人们通过访问服务器实现邮件的交换。服务器程序通常不能由用户启动,而是一直在系统中运行,它一方面负责把本机器上发出的E-mail发送出去,另一方面负责接收其他主机发过来的E-mail,并把各种电子邮件分发给每个用户。
        电子邮件程序是计算机网络主机上运行的一种应用程序,它是操作和管理电子邮件的系统。在你处理电子邮件时,需要选择一种供你使用的电子邮件程序。由于网络环境的多样性,各种网络环境的操作系统与软件系统也不相同,因此电子邮件系统也不完全一样。

电邮系统的组成:

1. 服务器

  • 发送服务器(MTA):为了实现发送服务器不同的OS下都有相应的软件

     Windows下:电子邮件服务、 exchange(需要结合域)

     Linux下:sendmail 【无验证、无防垃圾、无防病毒】 、postfix、 extmail,虽然sendmail有很多的缺点,但是由于它是最早出现的,目前任然有很大的用户群

     还有第三方下的qmail

  • 接收服务器(MRA):

     Windows下:电子邮件服务

     Linux下:dovecot {能实现pop3 imap4 pop3s imaps}

2. 邮件分拣 MDA

maildrop procmail

3. 客户端(MUA)

Windows下:outlook、foxmail

Linux下:mutt、mail、evolution、thunderbird

4. 电邮安全

  • 中继

     邮件中继(SMTP Relay Service)指在不改变用户邮件地址(发 件人)的前提下,将用户邮件通过多链路SMTP邮件转发服务器 投递到收件人邮件服务器。

  • 反垃圾邮件

     常用软件:asf、 spamassian

  • 防病毒

     常用软件:clamav

关于电邮系统的简介就到这了,下面是实现部分。

(ps:由于编者时间问题,本文是参考别的文章的,文章出处:http://wnqcmq.blog.51cto.com/5200614/1187718

首先是 简单电子邮件系统的实现:

准备工作:

小编使用vm虚拟机来完成案例

两台服务器软件需求一致server linux 5.4

Bind-9.3.6-4.P1.el5

bind-chroot- 9.3.6-4.P1.el5

caching-nameserver

sendmail-8.13.8-2.el5

sendmail-cf-8.13.8-2.el5

sendmail-devel-8.13.8-2.el5

dovecot-1.0.7-7.el5

上述软件包,linux镜像中带得都有啦,读者可以直接使用yum安装就是了,因为电邮系统也会用到域名解析,所以DNS的搭建是必不可少的。

公司一服务器配置(先实现一个公司内部能相互发送邮件)

Step 1:首先是网卡参数的配置,服务器是有两块网卡的,eth0是内网卡,eth1是外网卡,网卡参数的配置文件在/etc/sysconfig/network-scripts/目录下,分别为ifcfg-eth0和ifcfg-eth1

# vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改添加一下内容即可

BOOTPROTO=static

PADDR=192.168.111.20

NETMASK=255.255.255.0
 

 # vim /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=static
IPADDR=10.0.0.1

NETMASK=255.255.255.0
修改完成之后重新启动网络服务

# service network restart

因为两块网卡涉及到网络数据转发问题,所以要打开数据转发选项(这里是为后续的两个公司之间的电邮通信做准备的)


  # vim /etc/sysctl.conf

 net.ipv4.ip_forward = 1
 

还要添加默认路由能让两个公司之间互通


 # route add –net default gw 10.0.0.1


要注意的是,这里的路由是临时路由每当网络服务重启的时候都要重新手工添加,当然读者也可以添加永久静态路由

step 2:修改主机名,sendmail会检查主机名的设置,这一步很重要,不然后面启动sendmail的时候会很慢


 # vim /etc/sysconfig/network
HOSTNAME=zzu.com

# vim /etc/hosts

192.168.111.20 zzu.com
 


最好重新启动让主机名生效,这里还有简洁的一招就是临时修改主机名


 # hostname zzu.com


Step 3:DNS服务器的搭建,使用yum分别将Bind-9.3.6-4.P1.el5、bind-chroot- 9.3.6-4.P1.el5、caching-nameserver安装好,bind的配置文件在/var/named/chroot/etc/目录下,官方给了一个样例文件,这里直接拷贝修改即可


# cd /var/named/chroot/etc/
# cp -p named.caching-nameserver.conf named.conf //这里读者一定要加上“-p”参数将文件的权限带过来

# vim named.conf //修改以下几选项(读者如果复制粘贴的话要注意符号)

listen-on port 53 { any; };

allow-query { any; };

allow-query-cache { any; };

match-clients { any; };

match-destinations { any; };
 


然后编辑区域配置文件


 # vim named.rfc1912.zones
zone "zzu.com" IN {

type master;

file "zzu.com.zone";

allow-update { none; };

};
 


之后创建区域文件


# cd /var/named/chroot/var/named/ # cp -p localhost.zone zzu.com.zone

# vim zzu.com.zone

$TTL 86400

@ IN SOA ns.zzu.com. root (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

@ IN NS ns.zzu.com.

ns IN A 192.168.111.20

mail IN A 192.168.111.20

pop3 IN CNAME mail

smtp IN CNAME mail

@ IN MX 10 mail
 

这里可以看到小编的MX记录了吧

接下来启动named服务

 # service named start //如果启动失败要读者要认真看日志,最常见的错误就是符号问题或者时文件的权限问题。

将服务器的域名解析服务器指向192.168.111.20

# vim /etc/resolv.conf
nameserver 192.168.111.20
 
在服务器测试看看可以使用

# nslookup
 

 

至此,dns搭建完毕。

Step 4:Sendmail发送服务器的搭建


# yum install sendmail # yum install sendmail-cf //实现sendmail.mc转向sendmail.cf
 


sendmail的配置文件在/etc/mail目录下,这里会涉及到修改access(用于实现中继,修改完后会转为)、local-host-names(设置sendmail承认的主机名)、sendmail.mc(配置文件,配置完成之后在sendmail-cf工具的帮助下自动转为sendmail.cf)


 # vim access //添加一下两行,具体的解释小编在后面的安全性会介绍到 Connect:192.168.111 RELAY

zzu.com OK

# vim local-host-names //添加本机主机名即可

zzu.com

# vim sendmail.mc //找到116行,修改成以下内容

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
 


看到了吧,smtp协议,小编将监听地址改为0.0.0.0,两块网卡都能够监听到

到这里发送服务器就算配置完成了,启动sendmail服务并查看端口的监听状态


 # service sendmail start # netstat –tupln | grep sendmail
 

Step 5:Dovecot接收服务器的搭建


 # yum install dovecot


dovecot的配置文件在/etc目录下叫dovecot.conf读者这里不用修改即可使用

启动dovecot服务并查看端口监听状态


 # service dovecot start
# netstat –tupln |grep dovecot
 
 

到这里单边的为实现一个公司内部能邮件通讯的无加密的简单电邮系统就搭建完成了

邮件系统还要提供合法的账户给用户通讯使用


 # useradd user1
# passwd user1
 
 

# useradd user2

# passwd user2
 


Step 6:客户端(MUA)配置实现

小编这里的邮件客户端用的是微软的outlook

第一步修改网卡参数

第二步创建账户

 

针对于user2用户的主机配置大致和user1的相同

网卡参数

添加账户的部分将user1改为user2即可

Step 7:客户端之间相互邮件通讯试试

User1发信给user2

在服务器端监控sendmail日志


 # tail –f /var/log/maillog

这只是发到服务器啦,user2还要接收一下

打开看看

再看看服务器日志

用user2 回复一下

在user1上收一下

监控日志

这样一来,公司一内部邮件通信无障碍了吧。

到这里,我们的简单电子邮件服务器及使用便结束了。

至于更深层次的不同区域的邮件互通的实现,请参见文章:

http://wnqcmq.blog.51cto.com/5200614/1187718