Chinaunix首页 | 论坛 | 博客
  • 博客访问: 508729
  • 博文数量: 694
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4840
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 19:30
文章分类

全部博文(694)

文章存档

2011年(1)

2008年(693)

我的朋友

分类:

2008-10-16 19:35:32


  内容简介:人们在Internet上最常使用的就是电子邮件,很多企业用户也经常使用电子邮件系统。在Unix系统中,Sendmail是应用最广的电子邮件。本文将比较详细地介绍如何建立一个Sendmail电子邮件,以满足企业的基本需求 ……
  
  企业Sendmail邮件服务器的创建(1)
  
  人们在Internet上最常使用的就是电子邮件,很多企业用户也经常使用电子邮件系统。在Unix系统中,Sendmail是应用最广的电子邮件服务器。本文将比较详细地介绍如何建立一个Sendmail电子邮件服务器,以满足企业的基本需求。
  
  一。 Sendmail的工作模式
  Sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,电子邮件系统可分为用户代理、传输代理和投递代理几个部分。用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如Outlook Express和Foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如Procmail.
  
  当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器,再通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲在本地,直到电子邮件的接收者查看自己的电子信箱。
  
  显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。 有许多程序可以作为信件传输代理。在Unix系统中,Sendmail是其中应用最广泛的一个,它是一个免费软件,可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,Sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如Qmail或Postfix等等。
  
  当Sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@aid.com.cn,那么Sendmail首先确定这个地址是用户名(ideal)+机器名(aid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。
  
  DNS数据中,与电子邮件相关的是信件(Message eXchange,MX)记录,例如在linuxaid.com.cn这个域的dns数据文件中有如下设置:
  
  IN MX 10 mail
  
  IN MX 20 mail1
  
  mail IN A 202.99.11.120
  
  mail1 IN A 202.99.11.121
  
  显然,在DNS中说明linuxaid.com.cn有2个MX服务器,于是,Sendmail试图将邮件发送给两者之一。一般来说,排在前面的MX服务器的优先级别比较高,因此服务器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给它。如果成功,SMTP服务器的任务就完成了。在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般情况下,MX服务器会自动把信件内容转交给目标主机。不过,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或者不执行SMTP服务,而是由其MX服务器来执行信件的管理,这时候,最终的信件将保存在MX机器上,直到用户来查看它。
  
  如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件主机),那么Sendmail将试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cn,DNS中没有对应的MX记录,因此Sendmail在确定MX服务器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。
  
  企业Sendmail邮件服务器的创建(2)
  
  二。 工作环境
  本文假设用户希望在企业网环境中创建一个电子邮件服务器,为本企业用户提供邮件服务。该服务器拥有一个合法的IP地址202.99.11.200和一个合法的域名mail.linuxaid.com.cn,并且DNS的MX记录也指向该域名(注:这里示例域名和IP地址均为伪造域名和地址)。为了满足域名需求,DNS的域数据文件应该包含以下内容:
  
  IN MX 10 mail
  
  mail IN A 202.99.11.200
  
  试验环境为RedHat 6.2、Sendmail 8.11.4和Qpopper 4.0.3,可分别从http://www.Sendmail.org/current-release.html和 Sendmail和Qpopper.
  
  三。 Sendmail的安装
  当前Sendmail最新的稳定版本为8.11.4,得到tar.gz格式的压缩包以后,将其存放在/usr/src目录下。
  
  1.解压软件包
  
  [root@email src]# tar xvfz Sendmail.8.11.4.tar.gz
  
  [root@email src]# cd Sendmail-8.11.4
  
  2.编译安装
  
  [root@email Sendmail-8.11.4]# cd Sendmail
  
  [root@email Sendmail]# sh Build
  
  3.生成配置文件
  
  [root@email Sendmail]#cd /usr/src/Sendmail-8.11.4/cf/cf/
  
  一般该目录下应该有config.mc的文件,如果没有则创建新文件
  
  config.mc,内容如附图所示。
  
  然后运行:
  
  [root@email cf]# sh Build config.cf
  
  该命令将在该目录下生成config.cf文件。
  
  4.安装Sendmail
  
  [root@email Sendmail]# sh Build install
  
  将config.cf拷贝到/etc/mail目录下,并改名为Sendmail.cf:
  
  [root@email mail]#cp /usr/src/Sendmail-8.11.4/cf/cf/
  
  config.cf /etc/mail/Sendmail.cf
  
  企业Sendmail邮件服务器的创建(3)
  
  四。 Sendmail的配置
  配置Sendmail的步骤如下。
  
  1.在/etc/mail目录下创建access文件,内容如下:
  
  127.0.0.1 RELAY
  
  202.99.11 RELAY
  
  这里表示允许本机和202.99.11.0网段中的机器通过该邮件服务器的转发邮件。其中202.99.11应该是您拥有的局域网络IP网段的IP地址,只需要写网络部分即可。比如说您的用户有多个网段,只需要在其中设置多个网段即可:
  
  127.0.0.1 RELAY
  
  202.99.11 RELAY
  
  200.200.201 RELAY
  
  2.对access文件生成易于检索的库文件格式:
  
  [root@email mail]# makemap hash access.db < access
  
  创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息,因为在上面的DNS配置文件中该服务器有一个域名: email.linuxaid.com.cn,并且MX记录也指向该域名,因此该服务器就有2个域名,分别为email.linuxaid.com.cn和linuxaid.com.cn,这样用户才可以使用someone@linuxaid.com.cn这样的地址收发邮件,故该文件应该包含入下内容:
  
  linuxaid.com.cn.
  
  mail.linuxaid.com.cn.
  
  3.创建别名数据库。在/etc/mail/aliases目录下创建文件aliases,内容如下:
  
  MAILER-DAEMON: postmaster
  
  postmaster: root
  
  bin: root
  
  daemon: root
  
  nobody: root
  
  然后生成aliases库:
  
  [root@email mail]# newaliases
  
  然后,就可以按如下方式启动Sendmail了:
  
  [root@email mail]# /usr/sbin/Sendmail -bd -q20m
  
  在第一次启动时可能出现如下的错误信息:
  
  554 5.0.0 /etc/mail/Sendmail.cf: line 41: unknown
  
  configuration line ""
  
  554 5.0.0 /etc/mail/Sendmail.cf: line 60: unknown
  
  configuration line ""
  
  不要紧张,只需要使用vi编辑器将这些行删除即可,其实41和60等行都是空白行而已。删除以后再重新启动就应该没有问题了。
  
  企业Sendmail邮件服务器的创建(4)
  
  五。 QPopper的安装配置
  QPopper是Unix/Linux环境下的POP3服务器,该软件配合Sendmail使用。其主要功能是实现支持用户通过POP3接收信件。安装和配置Qpopper的主要步骤如下:
  
  1.创建从/usr/mail指向/var/spool/mail/的链接
  
  [root@email src]# ln -s /var/spool/mail/ /usr/mail
  
  2.解压QPopper软件包
  
  [root@email src]# tar xvfz QPopper4.0.3.tar.gz
  
  [root@email src]# cd QPopper4.0.3
  
  3.编译安装QPopper
  
  [root@email QPopper4.0.3]# ./configure
  
  [root@email QPopper4.0.3]# make
  
  [root@email QPopper4.0.3]# make install
  
  安装成功以后,QPopper将会被安装在/usr/local/sbin/目录下。设置inetd启动QPopper.编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加如下内容:
  
  pop-3 stream tcp nowait root /usr/local/sbin/popper
  
  QPopper -s然后查找inetd进程ID号:
  
  [root@email QPopper4.0.3]# ps ax grep inetd
  
  336 ? S 0:00 inetd
  
  16872 pts/0 S 0:00 grep inetd
  
  找到inetd进程号为226.然后重新启动inetd进程,
【责编:admin】

--------------------next---------------------

阅读(602) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~