sendmail –bd –q1h
-q1h表示每隔一个小时发送一次邮件,类似地,-q15m是15分钟,等等。
7.1.3 sendmail 的相关文件
我们在define和feature相关的子句中讨论了一些sendmail的相关文件,现在我们来解
释这些文件的用法。这些文件的名字通常都可以在对应的mc子句里面更改。
主机别名
首先是/etc/sendmail.cw。这个文件非常简单,它给出本地主机的别名。如果你的主
机有多个名字,或者你的主机是整个域的信件交换主机,你就需要这个文件了。例如,
按照我们在前面的那个配置,mail.asnc.edu.cn是asnc.edu.cn域的信件交换主机,所以
我们需要在sendmail.cw里面写上这样一行:
$ cat /etc/sendmail.cw
# sendmail.cw - include all aliases for your machine here.
asnc.edu.cn
如果你有多个别名或者需要负责的交换域,每个需要单独写上一行。
用户别名
接下来的文件是/etc/mail/aliases,这个文件用来设置用户的别名。最简单的情况是
需要作信件分发的情况。例如,一般情况下,电子邮件出现问题的时候,我们需要把出
错的邮件头发送到本机的postmaster用户,但是也许你的系统上有多个系统管理员,因
此每个人都需要得到一份这个邮件头的拷贝。这种情况下就需要使用用户别名文件了。
aliases文件的格式是邮件别名:实际用户名,如果一个别名有多个用户就用逗号分开
,每个别名一行。例如,要把发给postmaster的信件发送给supervisor和manager,需要
写上这样一行:
postmaster:supervisor,manager
别名还可以用在这样的情况,即定义自动的邮件转发。例如,某个用户以前在你的系
统上接受电子邮件,现在他有了一个新的电子邮件,希望发到你的机器上的邮件自动被
转发到他新的电子邮件地址上,那么,可以使用类似这样的别名方式:(假设你的机器是
joe@yourdomain.com)
以后发给joe@yourdomain.com的电子邮件就自动中转到joe@newaddr.com。注意左边自
动加上你的机器名字,所以左边只能是账号名字,不能是全限定邮件地址。
别名的右侧也可以是文件或程序。例如,上面的postmaster别名可以用这样方法来设
置:
postmaster::include:/etc/mail/myaliases
:include:关键字表示让sendmail去读取对应的包含文件。而/etc/mail/myaliases的
内容要设置成:
supervisor
manager
就可以了。
要把邮件重定向到程序,可以使用管道,例如:
test_param:'|/home/test/test'
那么,sendmail会将发给test_param的邮件的内容作为/home/test/test程序的输入来
执行这个程序。
在修改了别名文件之后,需要用-bi参数重新初始化别名数据库:
sendmail –bi
另一个常用的办法是重定向。如果你在模板文件中定义了REDIRECT特性,那么可以使
用这个功能。例如,某个人在你的机器上开了一个账户user1,后来迁移到user2@serve
r2.com。那么,你可以将其别名写成
user1: user2@server2.com.REDIRECT
以后当有人向这个地址发信的时候,你的sendmail会将其退回,并且返回一个551 Us
er not local; please try user2@server2.com的信息。
在使用别名的时候,必须注意的是不要造成循环,例如user1转发给user2,user2又将
其转发给user1....如此循环。在这种情况下,转发17次后,sendmail将把它退还给发信
人。最常见的错误发生在你试图在转发邮件的同时在本地保留备份的情况下,例如:
user1: user1,user2
就构成了一个循环。
要在本地保留备份,使用转义符号,例如
user1: user1,user2
建立了别名文件之后,需要将其初始化,这可以通过newaliases命令完成:
[root@mail mail]# newaliases
/etc/aliases: 17 aliases, longest 31 bytes, 241 bytes total
也可以使用sendmail –bi命令:
[root@mail mail]# sendmail -bi
/etc/aliases: 17 aliases, longest 31 bytes, 241 bytes total
两种方式实际是完全一样的。
类似于通过aliases文件进行邮件转发,用户也可以使用自己的转发文件,例如,某个
用户user1想让发送给自己的邮件全部转发到user2@domain.com,但是又不希望建立全局
的用户别名,那么可以在自己的宿主目录下面建立一个.forward文件,内容只要一行:
user2@domain.com
就可以了。
这种技术可以让每个用户自己管理自己的邮件别名。
允许投递
如同我们说的那样,smtp协议是不需要身份认证的,也就是说任何人都可能telnet到
你的25端口并且发送莫名其妙的邮件。为了避免不必要的麻烦,比较高版本的sendmail
缺省直接禁止其他不明身份的机器利用你的系统投递邮件。这种情况下,一个非本地的
机器使用你的系统投递会产生一个'550 relay denied'错误。但是如果你要作一个邮件
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:
SSH使用指南
下一篇:
SSL中间人攻击
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】