公司决定要上邮件服务器,鉴于自己有域名,就打算自己搭建一个内部邮件服务器,思来想去,还是在Linux环境下搭建,理由有三:第一,Linux的安全性和稳定性高;第二,Linux下的基本都是免费的,不会产生任何版权问题。第三,出于个人原因,最近在学习Linux,虽然只是刚开始学,现在有个这么好的实践机会,为什么不把握呢,反正他们要求不是很高,以后维护的时候也可以多练练手。所以就决定了在Linux下搭建,但是呢,问题来了,菜鸟啊,能力永远是硬伤,第一时间想到的是sendmail,说句实话,我开始就只认识这一个,后来经过了解和大神的指点,说现在sendmail基本过时了,让我用qmail,我就去看qmail,看了一遍下来,整个人都是蒙的,看不懂!唉,后面还是想了想,还是用sendmail吧,然后找到那本《鸟哥的Linux私房菜--服务器版》找到关于邮件服务器的配置的文章,发现居然没有sendmail的配置文章,换成了postfix,大概看了下,还行,比qmail貌似简单点。postfix就postfix,反正新手都一样。死马当活马医。接着就开始看书,了解一下基本知识了。

先来弄清楚一个问题,邮件服务器是不是一定要和DNS server架设在一起,答案是不一定,但是一定要有一个合法的主机名。例如,gamil.google.com.hk ,

下面来解释几个专业名词:

MUA(Mail User Agent) 故名思意:邮件代理人,主要的功能是收发邮件服务器的电子邮件,提供用户查看和编辑邮件的功能,最常见的软件有,雷鸟,foxmail,Outlook等客户端。

MTA (Mail Transfer Agent)邮件发送代理人,主要功能是将用户在客户端写好发送上来的邮件传出去给对应的用户。主要作用是接收邮件(使用SMTP协议),转发邮件。

MDA (Mail Delivery Agent)邮件传送代理人,是不是和上门那个MTA名字有点像,其实这个MDA就是MTA下面的一个小程序,主要的功能就是分析由MTA所接收的邮件的表头或者内容等数据,决定这个邮件下一个去向。

Mailbox 就是电子邮件邮箱,是某个用户专门在服务器上存放邮件的地方。

好了,现在开始真正了解和配置Postfix了,在centos6之后都默认安装了postfix,如果没装,可以Yum或者rpm都可以。

装好之后,postfix的配置文件都在/etc/postfix/这个目录下面,/etc/postfix/main.cf这个是postfix的主配置文件,和其他服务器一样,修改过这个文件就要重启服务器生效。

环境搭建:把主机名修改成mail.jxcia.com 然后接着看书。。。。。

进入配置文件 vim /etc/postfix/main.cf

找到下面对应的行,并修改。

myhostname :设置主机名,需使用FQDN

注:这个设置会被以后很多其他参数引用,所以需要正确设置,并且设置完整的主机名,例如:mail.jxcia.com,

myorigin:发信息时所显示的“发信源主机” 项目

这个项目在设置“邮件头上面的mail from 的那个地址”,也就是代表本MTA传出去的邮件将以此为准。

inet_interfaces :设置postfix的监听接口(极其重要)

默认情况下postfix只是监听本机的Lo(127.0.0.1)接口,如果你想要监听整个internet的话,请开放对外的接口,或者开放给全部的接口,常见的设置方法为:inet_interfaces = all,由于有重复出现的项目时,postfix会以最晚也就是最下面的设置值为主,所以最好只保留一组设置。

inet_protocols :设置postfix的监听IP的协议

默认centos会监听IPV4 和V6两个版本的IP,根据需要设置。

mydestination:设置“能够收信的主机名” (极重要)

这个设置很重要,因为我们的主机名会有很多个,那么对方填写的mail to 到底是要写哪个主机名我们才能将该邮件收到,就是在这里规范的,也就是说,在众多的主机名中,仅有写入到这个设置值的名称才能作为email的主机地址,(这里有个疑问,晚点研究)

mynetwrks_style :设置“信任网络”的一项指标

这个值在规定与主机在同一个网络的可信任客户端,比如,我的主机是192.168.1.251 那我相信整个局域网内的用户的话,那就把这个设置成subnet,不过一般默认设置Host即可,因为下面的mynetworks会取代这个设置值.

mynetworks :设置信任的客户端(极重要)

你的MTA能不能进行Relay与这个设置值很有关系,举个例子来说,当我要开放我的本机与内部网络的IP时,就可以这样设置,mynetwork = 127.0.0.1/8, 192.168.1.0/24。如果我要想以/etc/postfix/access 这个文件来控制relay用户时,建议将上述文件改成mynetworks = 127.0.0.1/8, 192.168.1.0/24, hash:/etc/postfix/access,然后你只要再建立access重整成数据库后,就能狗设置relay用户了。

 

基本需要设置的就这些了,设置完了之后,需要用命令检查一遍语法是否出错。

[root@www ~]# /etc/init.d/postfix check

然后启动服务器。

[root@www ~]# /etc/init.d/postfix restart

这样基本的就设置好了。其他的慢慢再研究了。