当前位置:Linux教程 - Email - email - sendmail

email - sendmail

sendmail
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

sendmail支持的操作系统有哪些
Berkeley sendmail 8.9.3版本以后的sendmail支持很多版本的UNIX包括:
386BSD、A-UX、AIX、Altos、BSD-OS、BSD43、CLIX、CSOS、ConvexOS Dell、
DomainOS Dynix、EWS-UX_V、FreeBSD、HP-UX、IRIX、ISC、KSR、LUNA、linux、
Mach386、NCR.MP-RAS、NEWS-OS、NeXT、NetBSD、NonStop-UX、OSF1、OpenBSD、
PTX、Paragon、PowerUX、RISCos、SCO、SINIX、SMP_DC.OSx.NILE、Solaris、
SVR4、SunOS、Titan、ULTRIX、UMAX、UNICOS、UNIX_SV.4.x.i386、UX4800、
UXPDS、Utah、dgux、maxion、uts.systemV。
另外,在http://www.sendmail.com/可以得到Windows NT版本的Sendmail。

使sendmail监听在其他端口
一些内部服务器可能需要定义sendmail监听在其他端口比如2525,如何做到?
可以在mc文件里面定义
define(`SMTP_MAILER_ARGS', `TCP $h 2525')
再生成sendmail.cf
或者编辑sendmail.cf,修改
A=TCP $h

A=TCP $h 2525

修改sendmail的欢迎提示
telnet到某台运行sendmail的服务器的25端口的时候,一般会出现:
220 xxx.com ESMTP Sendmail 8.12.6/8.12.6; Sat, 26 Oct 2002 23:45:19等提示,如何修改这个提示呢?
修改/etc/mail/sendmail.cf里面的SmtpGreetingMessage选项,例如:修改原来的
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

O SmtpGreetingMessage=test
然后重起sendmail,再次telnet到25端口,出现的就是:
220 test ESMTP
避免了某些恶意用户获得邮件系统版本。

让sendmail不能支持VRFY等功能
sendmail缺省提供VRFY、EXPN等功能,这些功能给发垃圾邮件者提供了一定的方便,如何取消呢?
修改/etc/mail/sendmail.cf里面的PrivacyOptions,从缺省的
O PrivacyOptions=authwarnings
改为
O PrivacyOptions=authwarnings,novrfy,noexpn
这样sendmail就不支持VRFY和EXPN功能了。

让sendmail不出现帮助信息
清空/etc/mail/helpfile的内容,这样telnet到邮件服务器的25端口的时候使用help命令将会提示:
214 2.0.0 End of HELP info
不会暴露系统版本。

使本地邮件服务器的邮件都通过某台机器转发
修改/etc/mail/sendmail.cf中的DS记录,例如:
DS 192.168.0.1
这样你的本地邮件服务器上的邮件都通过192.168.0.1这台机器转发出去,不过要确定
192.168.0.1会接受你的转发。

Sendmail的出错信息是"mail loops back to myself"如何解决
产生这个问题的原因是:当信件发送给某个邮件服务器(例如test.com)的时候,这台邮
件服务器却不把自己当作test.com。
解决方法是修改/etc/mail/local-host-names,加入test.com。

sendmail允许某个地址邮件转发
  因为Sendmail 为了怕变成广告信转信站所以安装后只限本机上的使用者寄信, 要让它为
你转信需要修改一点东西。
  修改 /etc/mail/access 档案在里面增加下面几行。
  localhost RELAY
  192.168.1 RELAY
  就可以将 192.168.1 网域里的信转出去了。如果用户的地址是不固定的,那么请参考其他
关于SMTP验证的文章。

变更收取的邮件的默认存储位置
  如果你的sendmail使用procmail作为MDA的话, 可以使用procmail来指定收下来的邮件存
放在用户的home目录。方法如下:
1. 在/etc/下建立procmailrc文件。
2. 在其中指定环境变量MAIL的路径(可设为$HOME/mbox或其它)

当系统启动到Sendmail时会暂停
这是一个常见的问题,当Sendmail启动时它会自动查找你的主机名,如果你没有预先设置
的话,Sendmail在进行查询时将只会得到你的主机IP地址而不是主机名。很不幸,Sendmail在
得到IP时会尝试通过DNS反向解释以得到IP地址所对应的域名,这个反向解释的过程耗时较长,
直到Sendmail确认无法得到主机名后才会放弃查找,进而继续其启动管理。
为了解决这个问题,需要编辑服务器的/etc/hosts文件,把你的IP地址与主机名的对应项放进去,例如:
127.0.0.1 localhost localhost.domain
202.99.11.120 linuxaid linuxaid.com.cn

sendmail下限制邮件大小
  linux系统使用sendmail发送邮件,配置文件是/etc/sendmail.cf,缺省使用TCP/IP协议。
我们的linux机器上往往会有多个用户同时工作,或者干脆就用它作邮件服务器,在同一时刻,
系统可能要收发很多邮件,因此不能让某一用户过多地占用sendmail的时间。sendmail的缺省
配置对每次收发邮件的大小没有限制,更改配置文件/etc/sendmail.cf,找到
O MaxMessageSize,去掉行首的#号,并将其后的数值改为一合适的数值,单位为字节。如:
  O MaxMessageSize = 1048576
  意为每次收发邮件最大为1MB,任何超过这个值的邮件将被拒绝。

为什么不能配置邮件服务器为open relay的
  如果系统管理员将自己的邮件服务器设置为open relay,将会导致一些垃圾邮件发送者将
你的邮件服务器作为转发自圾邮件的中继站,这将使垃圾邮件的接收者将矛头对准你,可能会
导致报复性的邮件炸弹;垃圾邮件还能消耗你大量的资源,占用你的带宽。更为糟糕的事情可
能是你的名字可能会上了黑名单,成为其他邮件接收者共同抵制的目标,你的邮件将被这些接
收者所拒绝。

不显示其他用户的消息
有时候有的用户喜欢用write user pts/n这样来给名叫user的用户发送信息,但是万一这位用户正在忙重要的事不想收到这种信息呢?
用户可以使用mesg n来禁止别人给他发送信息,其实就是禁止别人往自己的终端上面的写权限。当别人试图再使用write给他发送信息时,发送者将会看见提示:
write: user has messages disabled on pts/n