分类: LINUX
2008-04-27 10:04:11
邮件服务器的作用: 为一个域收信. 前提要有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、下载网站:
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 :
>rcpt to :
>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、开启或者重启服务。。 本文出自 51CTO.COM技术博客 |