建立virtusertable的方法与建立access的办法是一样的:
makemap hash virtusertable.db < virtusertable
然后重新启动sendmail。
2、如何设定用户别名?
用户的别名是由文件/etc/mail/aliases来设定的。最简单的情况是需要作信件分发的情况。例如,一般情况下,电子邮件出现问题的时候,我们需要把出错的邮件头发送到本机的postmaster用户,但是也许你的系统上有多个系统管理员,因此每个人都需要得到一份这个邮件头的拷贝。这种情况下就需要使用用户别名文件了。
aliases文件的格式是 邮件别名:实际用户名,如果一个别名有多个用户就用逗号分开,每个别名一行。例如,要把发给postmaster的信件发送给supervisor和manager,需要写上这样一行:
postmaster:supervisor,manager
别名还可以用在这样的情况,即定义自动的邮件转发。例如,某个用户以前在你的系统上接受电子邮件,现在他有了一个新的电子邮件,希望发到你的机器上的邮件自动被转发到他新的电子邮件地址上,那么,可以使用类似这样的别名方式:(假设你的机器是joe@linuxaid.com.cn)
joe:joe@xxxxx.com
以后发给joe@linuxaid.com.cn的电子邮件就自动中转到joe@newaddr.com。注意左边自动加上你的机器名字,所以左边只能是账号名字,不能是全限定邮件地址。
另一个常用的办法是重定向。如果你在模板文件中定义了redirect特性,那么可以使用这个功能。例如,某个人在你的机器上开了一个账户user1,后来迁移到user2@server2.com。那么,你可以将其别名写成
user1: user2@server2.com.redirect
以后当有人向这个地址发信的时候,你的sendmail会将其退回,并且返回一个551 user 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想让发送给自己的邮件全部转发到xxxxx@xxxxxx.com,但是又不希望建立全局的用户别名,那么可以在自己的宿主目录下面建立一个.forward文件,内容只要一行:
xxxxxx@xxxxx.com
就可以了。 这种技术可以让每个用户自己管理自己的邮件别名。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器