邮件服务器的作用: 为一个域收信. 前提要有DNS服务要有MX记录.

一 、基本概念:

1、发信服务器:

用来替用户把邮件发送到目的地的服务器,一般运行着Smtp服务器软件.(相关于邮局)

收信服务器:

等待用户来收信的服务器,一般运行着Pop/imap服务器软件.(相关于家门口的邮箱)

2、MTA(Mail Transfer Agent)

邮件传输代理,发送邮件服务器软件的总称,如:Sendmail ,Qmail ,Postfix,exim等

注意:一个服务器上只能运行一种MTA.

MUA(Mail User Agent)

邮件用户代理.帮助用户收信的客户端软件的总称.如Outlook Foxmail.

注意:一个客户端可以装多种MUA.

3、Smtp服务器的工作原理:

收到邮件------à[是自己的邮件吗?]---------à(是)放进本地信箱

|

|

(不是)发送到目标域.

二 、Sendmail服务器的安装

1、 安装(像这种安全要求较高的服务最好用最新的稳定版)

A、下载网站:[url]Http://www.sendmail.org[/url]

B、准备编译环境:

删除Sendmail以及Postfix等其它服务软件.

#rpm –e --nodeps sendmail

#rpm –e --odeps postfix

#rpm –qa | grep sasl ##查找相关的软件包

需要安装:cyrus-sasl, cyrus-sasl-devel, cyrus-sasl-plain

需要DNS环境: (现在因为是做实验,所以自己做服务器,而实际中不一定要自己做)

在区域文件中加入: (DNS配置见第二章笔记)

@ IN SOA sina.com. root.sina.com. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS sina.com.

IN MX 5 sina.com. ##其中的5是优先级,在多台的情况下.

sina.com. IN A 192.168.0.254

mail IN A 192.168.0.254

www IN A 192.168.0.254

配置DNS后,查看下:

#host –t MX abc.com

#host mail.abc.com

三 、 配置Sendmail

1、 配置文件

A 、 /var/spool/mail(或者/var/mail) ##收件箱的配置文件

B、 /var/spool/mqueue ##邮件发不出去时存放的位置,壶30-60分钟再发

C、 /etc/mail ##主配置文件的文件夹

D、 /etc/mail/access ##访问控件文件

E、 /etc/aliases ##邮箱别名有配置文件

F、 /etc/mail/local-host-name ##Sendmail接收邮件主机名列表

G、 /stc/mail/sendmail.cf ##Sendmail的主配置文件

H、 /stc/mail/virtuSertable ##虚拟用户和域配置文件

2、在DNS配置好的前提下配置

#cd /etc/mail

#vi sendmail.mc

修改第85行:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl #将127.0.0.1改为服务器的IP: 如192.168.0.254

修改第123行:LOCAL_DOMAIN(`Localhost.com')dnl

将Loclhost.com改为邮件服务器的域名

LOCAL_DOMAIN(`abc.com')dnl

生成Sendmail.cf

#m4 sendmail.mc > sendmail.cf

或者#make –C /etc/mail (注意:C是大写)

加入自己的主机名(abc.com)

#vi /etc/mail/local-host-names

访问控制:

#vi /etc/mail/access

Abc.com REALY

生成数据库: #makemap hash access/db < access

重启Sendmail: #killall -9 sendmail

#service sendmail start

#service sendmail restart 两次

3 、发信的过程:

#telnet mail.sina.com 25

>helo www

>mail from : tt@sina.com

>rcpt to : root@sina.com

>data

>内容

>. ( 以点结束)

#tail /var/mail/root 查信

4、区分真实用户和虚拟用户。

# vi /etc/aliases

1) 别名:(前为虚拟用户,后为真实用户,一对一)

Renshibu : Jim

Caiwubu : Tom

2)邮件列表.(前为虚拟用户,后为很多真实用户,一对多。可以实现群发)

Benet : a,b,c,d

2) 转发:(两边都是真实的用户,即发给左边用户的都转给右边的。)

Abc : Doc

5、虚拟用户和主机。(用于一个服务器有多个域的情况)

1)DNS添加一个域,如:doc.com

2)在/etc/mail/local-host-names 添加doc.com

3) 在/etc/mail/access 中添加doc.com

4) #makemap hash : access.db < access

5)重启服务.

6、设置pop3/IMAP (作用:用于客户端存取远程服务器中信件的功能)

#vi /etc/xinetd.d/ipop3 将中间的disable=yes 的yes 改为no

#vi /etc/xinetd.d/imap 改的也是一样的。。。

#service xinetd restart 重启服务。。

7、SMTP认证(用到SMTP认证就用不着Access了。)

#vi /etc/sendmail.mc

改:1)去掉43、44行的注释,一定要顶格,不能有空格。

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

2)85行加上注释dnl,格式和前面的一样。 加的dnl后有空格。。

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

3 )92行:DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

将submission改成25。

4)运行:#make –C /etc/mail

5)重启Sendmail服务.

6)验证:Outlook.

设置:工具——》帐户——》属性——》服务器。 选择我的服务器需要认证。进行设置。

8、Postfix

准备工作:先杀掉Sendmail 或其它邮件服务。。

1、vi /etc/postfix/main.cf

A 改:69行 去掉# myhostnamed=abc.com

B 76行 去掉#号 mydomain = abc.com

C 88行 去掉#号 myorigin = $mydomain

D 97行 加上#号

98行 去掉#号 inet_interfaces

E 157行 去掉#号 mynetsorks_style=subnet 我的网络类型

F 172行 去掉#号 mynetworks =192.168.0.0/24 控制访问的网段。。

2、开启或者重启服务。。