Linux下 Sendmail服务器 转发功能的讲解
1、为什么不能配置邮件服务器为open relay的?
如果系统管理员将自己的邮件服务器设置为open relay,将会导致一些垃圾邮件发送者将你的邮件服务器作为转发自圾邮件的中继站,这将使垃圾邮件的接收者将矛头对准你,可能会导致报复性的邮件炸弹;垃圾邮件还能消耗你大量的资源,占用你的带宽。更为糟糕的事情可能是你的名字可能会上了黑名单,成为其他邮件接收者共同抵制的目标,你的邮件将被这些接收者所拒绝。
2、什么是邮件转发(mail relay)
设置好一个email服务器以后,该服务器将具有一个或若干个域名,这时email服务器将监听25号端口,等待远程的发送邮件的请求。网络上其他的mail服务器或者请求发送邮件的mua(mail user agent,如outlook express、foxmail等等)会连接email服务器的25号端口,请求发送邮件,smtp会话过程一般是从远程标识自己的身份开始,过程如下:
helo remote.system.domainname 250 qmailserver.domain mail from:user@somewherer.net 250 ok rcpt to: user1@elsewhere.net |
邮件的接收者user1@elsewhere.net中的域名并不一定是本地域名,这时候本地系统可能有两种回答,接受它:
250 ok |
或者拒绝接受它:
553 sorry,.that domain isnot in my domain list of allowed recphosts |
第一种情况下,本地email服务器是允许relay的,它接收并同意传递一个目的地址不属于本地域名的邮件;而第二种情况则不接收非本地邮件。
email一般都有一个配置文件,其决定了是否接受一个邮件。只有当一个rcpt to命令中的接收者地址的域名存在于该文件中时,才接受该邮件,否则就拒绝该邮件。若该文件不存在,则所有的邮件将被接受。当一个邮件服务器不管邮件接收者和邮件接收者是谁,而是对所有邮件进行转发(relay),则该邮件服务器就被称为开放转发(open relay)的。当email服务器没有设置转发限制时,其是开放转发的。
3、sendmail如何限制邮件转发
因为send mail 为了怕变成广告信转信站所以安装后只线本机上的 使用者寄信,要让它为你转信需要修改一点东西。 修改 /etc/mail/access 档案在里面增加下面几行。
localhost relay 192.168.1 relay |
就可以将 192.168.1 网域里的信转出去了。