当前位置:  技术问答>linux和unix

如何在linux9.0下构建邮件服务器(sendmail)的---------在线等!~~~

    来源: 互联网  发布时间:2015-09-17

    本文导语:  如何在linux9.0下构建(sendmail)邮件服务器,如何在客户端使用,如何配置!~~ 分不够可再发贴补分倾情在下所有六百分!! | Sendmail邮件服务器快速指南  人们在互联网上最常使用的就是电子...

如何在linux9.0下构建(sendmail)邮件服务器,如何在客户端使用,如何配置!~~
分不够可再发贴补分倾情在下所有六百分!!

|
Sendmail邮件服务器快速指南

 人们在互联网上最常使用的就是电子邮件,很多企业用户也经常使用免费电子邮件系统。本文就以step by step的方式引导用户从sendmail源代码开始构建一个可以满足基本工作需要的邮件系统。

一、概述 

  sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。 

  当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器, 并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者察看自己的电子信箱。 

  显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。有许多的程序可以作为信件传输代理,但是sendmail是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如qmail、postfix等等。 

  当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@linuxaid.com.cn,那么sendmail首先确定这个地址是用户名(ideal)+机器名(linuxaid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。 

  DNS数据中,与电子邮件相关的是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有两个一个信件交换(MX)服务器,于是,sendmail试图将邮件发送给两者之一。一般来说,排在前面的的MX服务器的优先级别比较高,因此服务 器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给它。如果成功,你的smtp服务器的任务就完成了,在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般的情况下,mail换器会自动把信件内容转交给目标主机,不过,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或者不执行smtp服务,而是由其mx交换器来执行信件的管理,这时候,最终的信件将保存在mx机器上,直到用户来察看它。 

  如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么sendmail将是试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cnDNS中没有对应的MX记录,因此sendmail在确定MX交换器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。 

 二、工作环境 

  本文假设用户希望在园区网环境中架设一个电子邮件服务器,为本单位用户提供邮件服务。该服务器拥有一个合法的IP地址202.99.11.200和一个合法的域名mail.linuxaid.com.cn,并且DNS的MX记录也指向该域名(注:这里示例域名和IP地址均为伪造域名和地址)。为了满足域名需求,DNS的域数据文件应该包含以下内容: 

  IN MX 10 mail 
  mail IN A 202.99.11.200 



  试验环境为:redhat6.2、sendmail.8.11.4、qpopper4.0.3。 

  三、软件下载 

  分别从以下地址下载sendmail和qpopper: 

  sendmail.8.11.4.tar.gz http://www.sendmail.org/current-release.html 
  qpopper4.0.3.tar.gz http://www.eudora.com/qpopper_general/ 

  四、Sendmail的配置和安装 

  Sendmail是目前使用最为广泛的一种E-mail服务器。当前其最新的稳定版本为8.11.4。下载得到tar.gz格式的压缩包以后,将其存放在/usr/src目录下。 

  解压软件包: 

  [root@email src]# tar xvfz sendmail.8.11.4.tar.gz 
  [root@email src]# cd sendmail-8.11.4 

  编译安装: 

  [root@email sendmail-8.11.4]# cd sendmail 
  [root@email sendmail]# sh Build 

  生成配置文件: 

  [root@email sendmail]#cd /usr/src/sendmail-8.11.4/cf/cf/ 

  一般该目录下应该有config.mc的文件,如果没有则创建新文件config.mc,内容为: 

  divert(-1) 
  dnl This is the macro config file used to generate the /etc/sendmail.cf 
  dnl file. If you modify thei file you will have to regenerate the 
  dnl /etc/sendmail.cf by running this macro config through the m4 
  dnl preprocessor: 
  dnl m4 /etc/sendmail.mc > /etc/sendmail.cf 
  dnl You will need to have the Sendmail-cf package installed for this to work. 
  include(`/usr/src/sendmail-8.11.4/cf') 
  define(`confDEF_USER_ID',`8:12') 
  OSTYPE(`linux') 
  undefine(`UUCP_RELAY') 
  undefine(`BITNET_RELAY') 
  define(`confAUTO_REBUILD') 
  define(`confTO_CONNECT', `1m') 
  define(`confTRY_NULL_MX_LIST',true) 
  define(`confDONT_PROBE_INTERFACES',true) 
  define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail') 
  FEATURE(`smrsh',`/usr/sbin/smrsh') 
  FEATURE(`mailertable',`hash -o /etc/mail/mailertable') 
  FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable') 
  FEATURE(redirect) 
  FEATURE(always_add_domain) 
  FEATURE(use_cw_file) 
  FEATURE(local_procmail) 
  MAILER(smtp) 
  MAILER(procmail) 
  FEATURE(`access_db') 
  FEATURE(`blacklist_recipients') 
  dnl We strongly recommend to comment this one out if you want to protect 
  dnl yourself from spam. However, the laptop and users on computers that do 
  dnl not hav 24x7 DNS do need this. 
  FEATURE(`accept_unresolvable_domains') 
  dnl FEATURE(`relay_based_on_MX') 


然后运行: 

  [root@email cf]# sh Build config.cf 

  该命令将在该目录下生成config.cf文件。然后安装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 
在/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 

  然后对access文件生成易于检索的库文件格式: 

  [root@email mail]# makemap hash access.db 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在线等解决200分相送解决一个给50:Red Hat Linux9.0下配置 DNS服务器,FTP服务器,WWW服务器,邮件服务器
  • 菜鸟在http://www.linuxiso.org/上下载了linux9.0,不知道是否是简体中文的安装界面???哪里有简体中文安装界面的linux9.0下载??
  • 如何卸载red linux9.0?我第一块硬盘装的win2000,第二块硬盘分出10G装的red linux9.0,grub安装到第一块硬盘的mbr中了,如何安全的删除red
  • 急!!在线等!卸载linux9后,找不到光驱了。
  • linux9.1屏幕字体模糊问题
  • linux9.0.1中有自带的apache?
  • linux9 下的 gcc 的使用
  • 菜鸟问题:我的RED HAT LINUX9 启动不起来了
  • linux9安装时不能分区
  • 在red hat linux9下输入startx命令出错
  • I have two question about linux9!
  • Linux9如何安装?
  • 账户过期了,进不了linux9.0,怎么办?
  • 偶该怎么装Linux9.0?
  • linux9安装出错!
  • redhat linux9.0拷到我的硬盘地如何安装!!
  • RedHat Linux9下面如何加载NTFS分区?
  • linux9.0上apache的安装问题
  • vmware4、redhat linux9、网卡
  • 请教高手,rethat linux9.0不能识别内置网卡
  • Red Hat Linux9下 如何设置上网


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3