Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10730363
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:11:28

配置邮件服务器

.邮件系统的基本原理
1.简介:一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理将用户的信件传送至传输代理(如Outlook ExpressFoxMail等)。邮件传输代理负责将邮件送到目标主机(如sendmail)。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱(如procmail)。
2.电子邮件系统的优点:可以在很短时间内把数据发送到目的地,发送和接收电子邮件的过程不会被中断,随时发送和接收电子邮件
3.电子邮件系统:
电子由件地址和电子邮箱
发送方使用第二部分来选择目的地,接收方使用第一部分来选择指定邮箱
4.电子邮件格式:
信封和内容(报头,邮件格式所规定的必要的部分;报文分为信件内容和附件部分)
MUAMail User Agent,将邮件发往Internet上的一个ISP,它具有撰写邮件、显示邮件、处理邮件的功能
MTAMail Transfer Agent,它负责邮件的存储和转发(store and Forward)
5.电子邮件系统的工作原理
我们来模拟一封邮件从发出到收到的过程。用户使用Outlook Express(用户代理或叫做邮件客户端)向Sendmail(传输代理)请求发送电子邮件的服务,将邮件交给SendmailSendmail根据邮件的目的地址,将邮件发送给邮件接收服务器,邮件接收服务器将邮件缓存(这也是Sendmail的工作)。接收邮件的用户用Outlook Express向邮件接收服务器发出取信的请求,邮件接收服务器将邮件发送给用户(这是IMAPPOP服务的工作)。至此,一封邮件从发送者的机器到达接收者的机器。
我们要建立的邮件服务器,以Sendmail作邮件传输服务,IMAP作收信服务来构成邮件系统的基本框架。以Horde Imp作为邮件的Web客户端。剩下的就是Horde Imp的支持软件:以MySQL存储用户数据,以Apache+PHP作为Web服务器。我们还使用其它的模块来扩充本系统的功能:通讯录模块和修改密码模块。
.与电子邮件相关的协议
1.SMTP:Simple Message Transfer ProtocolRFC821定义,SMTP主机规定基础的电子邮件提交系统怎么传递报文.MUAMTA建立连接并发送邮件和MTA之间使用SMTP进行电子邮件的转发时使用SMTP协议
SMTP的通信过程
2.多用途互联网邮件扩充MIME,Multipurpose Internet Mail ExtensionIETF为发送二进制数据而发明的多种编码方案,它允许发送方和接收方选择方便的编码方法,发送方在头部包含一些附加行说明信息遵循MIME格式,以及在主体中增加一些附加行说明数据类型和编码;还允许发送方将信息分成几个部分,并对每个部分指定不同的编码方法,即在一个信息中既发送普通文本又附加(attach)一个图像,MIME自动解码附加的数据,为了透明的编码和解码,MIME在电子邮件头部增加两行:一行用来声明使用MIME生成信息,另一行说明MIME信息是如何包含在正文中的
MIME-Version: 1.0
Content-Type:Multipart/Mixed; Boundary=Mime_separator|Content-Type:text/plain
3.邮件接收客户访问邮件的方式
邮件接收者对邮件服务器的请求访问模式有离线、在线和断线3种模式
4.POP3协议要检测用户登录名和口令,然后将用户的邮件从服务器移动到用户本地桌面系统的MUA.它监听TCP110端口,POP3RFC1939中定义,它是请求-响应式协议
5.IMAP4:POP的替代品,它了POP相同的基本功能之外,还增加了对邮箱同步的支持,即IMAP提供了如何远程维护服务器上的邮件箱的功能
.sendmail简介
1.sendmail的功能
接收SMTP邮件、为邮件选择路由、传输SMTP邮件、使用别名,从而允许使用邮件列表、错误检测以及速度和代价优化
2.sendmail的结构和处理过程
3.安装sendmailimap
#rpm -qa|grep sendmail
插入第一张光盘
#mount /mnt/cdrom
#cd/mnt/cdrom/RedHat/RPMS
#rpm -ivh sendmail-8.12.8-4.i386.rpm安装sendmail服务软件
#rpm -ivh m4-1.4.1-13.i386.rpmm4工具生成sendmail的配置文件
#cd;eject
插入第3张光盘
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh sendmail-cf-3.12.8-4.i386.rpm
#rpm -ivh sendmail-doc-8.12.8-4.i386.rpm
#cd;eject
4.启动sendmail
mc
LOCAL_DOMAIN('abc.com')dnl设置本地域
LOCAL_DOMAIN('localhost.localdomain')dnl
DAEMON_OPTIONS('Port=smtp,Addr=192.168.1.57,Name=MTA')dnl 指定sendmail作为MTA运行时的参数,dnl删除尾部空格
#m4 sendmail.mc>sendmail.cf
#vi /etc/mail/sendmail.cf
C{w}abc.com设置类的值为abc.com
C{w}localhost.localdomain
O DaemonPortOptions=port=smtp,Addr=192.168.1.57,Name=MTA命令O用于为sendmail的选项赋值
O DaemonPortOptions=port=smtp,Addr=127.0.0.1,Name=MTA
#service sendmail start
.安装和启动imap
1.安装IMAP
#rpm -qa|grep imap
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm -ivh imap-2001a-18.i386.rpm
#cd;eject
2.启动imap
#vi /etc/xinetd.d/imap
disable=no
service xinetd restart
3.配置DNSMX记录
IN MX 5 rhl9.abc.com
rhl9 IN MX 10 rhl9.abc.com
4.收发邮件测试:
#cat /etc/resolv.conf
nameserver 192.168.88.57
#mail
Subject:test1
Thist is a test1
.
Cc:
#su - user1
$mail
#mail -u user1
.配置虚拟邮件用户数据库
#vi /etc/named.conf
配置虚拟域名字解析
#echo "abc.com">>/etc/mail/local-host-names
vi /etc/mail/access
abc.com        RELAY
#cd /etc/mail
#makemap hash access.db
生成/etc/mail/virtusertable.db
#vi /etc/mail/virtusertable
user1
#cd /etc/mail
#makemap hash virtusertable.db<virtusertable
#service sendmail restart
测试
#mail
#mail -u user1
:1.使用access数据库
smtp协议是不需要身份验证的,access数据库可以限制基于主机的访问控制
<地址><操作>
格式       举例       说明
domain abc.com *.abc.com,即域内所有主机
ip address 192.168.12,192.168.11.11    网段内的所有主机及特定的主机
username@domain      一个特定的邮件地址
username@  user1@  用户名为user1的邮件
操作:
格式       说明
OK  无条件接受或发送
RELAY   允许SMTP代理投递
REJECT 拒绝授受并发布错误信息
DISCARD      丢弃邮件,无错误信息发布
#vi /etc/mail/access
192.168.2.108 REJECT
user1@
测试:
192.168.2.108计算机发送邮件测试
mail from:user2@abc.com rcpt to:user2@abc.com
2:使用aliase数据库
#vi /etc/aliases
aliases:recipient
zhangsan:user1
#newaliases命令生成aliases.db
rcpt to:zhangsan.abc.com
3:转发邮件
abc:abc@abc.com
4:伪造电子邮件
#telnet
set local_echo
open 192.168.2.168 25
mail from:webmaster@abc.com
rcpt to:user1@abc.com
data
subject:this is fake!欺骗
<cr>
<cr>
enter message
.
Quit
阅读(817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~