Sendmail邮件服务器转发功能 ?
时间:2005-12-25 来源:rickyweiwei
什么是邮件服务器转发功能?
转发就是通过别人的邮件服务器(中继服务器)将你的邮件系统的邮件递送到目标地址。
为什么要使用转发功能?
一般架设邮件系统并不需要使用转发, 在出现以下几种情况时可能需要使用转发:
1. 有些邮件服务器(例如: sina, aol)拒绝接受使用动态IP的邮件服务器的来信,还有一些国外的邮件服务器使用 rbl 过滤,过滤掉很多国内的地址,可以使用转发,将邮件通过没有被过滤得中继服务器成功递送出去。
2. 你的邮件服务器连接到国外的网络速度很慢,有时连不上的,可以选一台国外的中继服务器(推荐使用美国的,因为中国到美国的网速比较快)。
3. 你的邮件服务器本身连接到 Internet 的速度比较慢,而连接到某一台 SMTP 服务器速度相对比较快。如普通拨号上网的用户,可以将中继服务器的地址设为当地的电信的 SMTP 主机。这样会加快递送速度,减少递送过程中的出错。
4. 你的域名不是internet上有效的,仅在内部使用,而又需要发信到外域,可以使用中继服务器将邮件递送到外域。当然外域的用户收到你的邮件后无法回复给你。
使用中继转发要注意的问题
通过中继转发的信最终是中继服务器发到目标地址的, 如果中继服务器投递时有错误, 错误回弹信将会放到外部中继邮箱里。需要定时去查看清除, 或者用 Winmail 的 pop3 下载功能收取到一个内部邮箱。
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:[email protected]
250 OK
RCPT TO: [email protected]
邮件的接收者[email protected]中的域名并不一定是本地域名,这时候本地系统可能有两种回答,
接受它: 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 网域里的信转出去了。
4、如果允许别人通过您的机器转发邮件,可以这么处理:
在/etc/mail/sendmail.mc中加入一行
FEATURE (promiscuous_relay) dnl
然后:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.test-relay
mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
cp /etc/mail/sendmail.test-relay /etc/mail/sendmail.cf
service sendmail restart
OK!