Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

sendmail大全

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

服务器,你终究得打开投递代理功能。

  sendmail的第一个投递代理设置文件是relay-domains。这个文件是一个简单的文本文 
件,文件的缺省名字是/etc/mail/relay-domains,可以在confCR_FILE中定义。内容类 
似这样:

yourdomain.com

  #所有*.yourdomain.com的机器可以使用你的机器作为smtp服务。

192.168 

  #所有192.168.*.*的机器可以使用你的机器作为服务

  /etc/mail/relay-domains文件是一个简单文本文件,当需要投递的域很多的时候,其 
效率不是很高。因此,sendmail还可以使用access.db来设定哪些地址的机器可以连接到 
你的25端口投递信件。这个文件的缺省名字是/etc/mail/access.db,但是可以用FEATU 
RE(access_db)来修改(例如:FEATURE(access_db,`hash –o /etc/access')。

  一般/etc/mail/access.db是一个散列表数据库,它是用/etc/mail/access为模版产生 
出来的。/etc/mail/access文件的格式是这样:

[地址] [操作]

中间的分割符是空格键。

    [地址]栏可以是主机地址或者名字,也可以是统配符,规则是这样:

yourdomain.com 代表所有*.yourdomain.com的名字。

192.168.12 代表所有192.168.12.*的地址。

202.135 代表所有202.135.*.*的地址。

someone@somedomain.com 代表一个特定的邮件发信人

而在每个地址后面可以跟上相应的操作,通常的操作有

  OK 正常接受这封邮件

  RELAY 允许SMTP代理投递,这样这封邮件就可以从你的机器中转到别的机器上去 

REJECT 拒绝接受 

  DISCARD 忽略这封邮件,这种情况下,邮件看上去是正常投递了,但是由于没有人接 
受,邮件会自动地‘消失’在网络中。

  错误代码+任何其他字符串:将向发信者返回这个字符串作为出错信息。错误代码是R 
FC 822定义的标准出错代码。例如 

550 We don't like a spammer! 

  客户机器在投递邮件的时候,就会产生一个‘we don't like a spammer’投递失败信 
息。比如,你认为someone@spammer是个专门投递垃圾邮件的家伙,那么你可以这样写:

someone@spammer 550 we don't like a spammer 

  修改了access文件之后,需要重新生成一下access.db,这可以用makemap命令完成:

makemap hash access.db < access 

然后重新启动sendmail就可以使用这些功能了。

虚拟域

  如同Apache一样,sendmail也允许使用虚拟主机功能,这是通过FEATURE(virtuserta 
ble)功能实现的,而虚拟主机的文件缺省是/etc/mail/virtusertable.db,它用/etc/m 
ail/virtusertable文件生成,这个文件的形式类似于aliases文件,即左地址 右地址 
,中间用Tab键分开。例如:

someone@otherdomain.com localuser

  这样一行意味着本来应该发送给someone@otherdomain.com的邮件现在要发送给本机的 
用户localuser。当然,这意味着:第一,你的DNS记录中,本机应该是otherdomain.co 
m的MX交换器;第二,你的本机sendmail.cw文件应该包含otherdomain.com这个名字。

  当然纯粹的这样的域意义不大,但是sendmail还支持邮件虚拟域的参数翻译。例如:

  @testdomain.com test@mydomain.com

意味着所有发往xxx@testdomain的邮件都会被发送到test@mydomain.com。而

  @testdomain.com %1test@mydomain.com

则代表参数转义,例如user1@testdomain.com的邮件被发送到user1test@mydomain.c 
om,user2@testdomain.com被发送到user2test@mydomain.com。同样,这样的功能也要 
通过MX记录和CW文件加上去。

  建立virtusertable的方法与建立access的办法是一样的:

  makemap hash virtusertable.db < virtusertable 

然后重新启动sendmail。

定义邮差

  /etc/mail/mailertable文件(在FEATURE(`mailertable’)里定义)用来定义对某个 
域名或者用户使用什么样的邮差,如local:user,smtp:mail.test1等等。一般情况下, 
并不需要定义这个功能。建立这个文件的方式与上面的几个hash数据库相同。

  需要注意的是,当前版本的sendmail对各种附加文件和配置文件的属性都有着严格的 
要求,特别是/etc/aliases文件,必须至少为0644以避免非授权的修改。

7.1.4 邮件分拣

  Linux的sendmail使用procmail作为信件的最终投递代理。这个程序有一些非常有用的 
,对于我们来说,最重要的功能是信件的自动过滤和分拣功能。

  信件分拣大概是用户最希望的功能,它按照邮件的文件头(发信地址,收信地址等等 
)甚至邮件的正文进行归类,并且可以自动存放在各个文件中或者转发给别的用户账号 
。马上我们会看到,用procmail配置自动分拣是一件非常容易的事情。

  通常的sendmail配置中已经使用了procmail作为邮件最终投递代理,如果你的sendma 
il已经改乱了,可以使用FEATURE(local_procmail)设置这个功能。

  procmail主要依靠用户宿主目录下面的.procmailrc中的信息来处理邮件.如果这个配 

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:SSH使用指南   下一篇:SSL中间人攻击

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号