Sendmail配置终极指南

文章作者 100test 发表时间 2007:03:14 16:57:04
来源 100Test.Com百考试题网


在众多的邮件服务器软件中,Sendmail总是能够在每一次评比中获得荣誉,从而使它成为目前使用最为广泛的一种E-mail服务器。但是,说起Sendmail的配置,很多人会感到头痛。长期以来,很多人为此不厌其烦地一遍又一遍地在BBS、新闻组上询问其配置。笔者希望借助本文对Sendmail的使用作一个力求完满的说明。

  下载及安装
  Sendmail的最新版本为:8.11.3,文件大小为1.2MB。
  1.解压缩
  # tar -zxvf Sendmail-8.11.3.tar.gz
  #cd Sendmail-8.11.3
  如果软件包是rpm格式,则解压安装如下:
  #rpm -ivh Sendmail-8.11.3-src.rpm
  2.编译
  # ./Build
  如果不出什么问题,编译通过,编译完成后会自动生成目录:obj.linux.2.2.18.i686(这是笔者的核心名称,也许你的内核名称与此不同)。
  3.安装
  #./Build install
  如果是rpm 格式的软件包,则应编译如下:
  # rpm -ba Sendmail-8.11.1.spec
  #rpm -ivh Sendmail*.rpm
  至此编译、安装完成

  配置策略
  sendmail.cf是Sendmail的配置文件,它全权决定了Sendmail的属性。这个文件定义邮件服务器为哪个域工作。其中的内容为特定宏,大多数人对它都抱有恐惧心理,因为文件中的宏代码实在是太多。sendmail.cf通常是由一个以mc结尾的文件编译产生。如Redhat自带一个redhat.mc,用户可以自己修改其中的一些设置,使之适合自己。笔者的sendmail.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/lib/Sendmail-cf/m4/cf.m4)
  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)

  编译sendmail.mc以产生需要的sendmail.cf文件:# m4 /etc/sendmail.mc > /etc/mail/sendmail.cf。

  生成sendmail.cf以后,编辑sendmail.cf。在文件中,查找DS,在其后加入邮件服务器名、域名,这样可以保证当你以[email protected][email protected]发信时,用户都可以收到,如下所示:

  # Alias for this host
  Cw mail.domain.com domain.com

  然后,就可以启动Sendmail了:# /usr/sbin/Sendmail -bd -q20m。

  Sendmail 8.9.x以后的版本,在缺省情况下,都默认不对未验证的计算机进行转发(Relay),所以如果要为本机以外的其他计算机进行邮件转发,这时,应该在相应的配置文件中明确告诉Sendmail要对哪几个主机进行转发。如果不考虑验证,对任何主机都进行转发的话,可以在sedmail.mc文件中加入一行:FEATURE(promiscuous_relay)。

  不过,如果你的计算机是放在公网上的话,建议你不要这样做,因为这样做了以后,任何人都可以使用你的计算机进行转发邮件了,特别是一些别有用心的人或一些兜售客(spammer,垃圾邮件制造者)会利用你的邮件服务器的转发功能乱发大量的垃圾邮件。

  使用说明
  通常情况下,Sendmail不会为邮件服务Relay信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail关闭了Relay功能。如果你要为别的服务器Relay邮件,可以进行如下设置——在access文件中加入要为其Relay信件的机器,格式为:

  hostname RELAY
  ipaddress RELAY

  如果要为一个域内多个机器Relay信件,则可以在/etc/mail/access文件中直接加入其子网IP或域名,如下所示:

  access文件内容:
  domainname.com RELAY(允许为域domainname的所有计算机relay邮件)
  localhost RELAY
  192.168.1.0 RELAY (为192.168.1.0此网内所有机器relay邮件)

相关文章


在Redhat9.0中将vsftpd并入xinetd
Linux_Unix下ODBC的安装、配置与编程
Sendmail配置终极指南
ubuntu(linux)下如何安装lumaQQ
教你如何构建自己的Linux发行版
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛