Postfixadmin 是一个基于Web的 Postfix 邮件发送服务器的管理工具,邮箱的自动回复功能大家都用过,那如何在Postfix上实现呢,那就请Postfixadmin管理工具帮忙吧,请看下文。
1. 创建一个本地帐户
创建一个"vacation"的本地帐户,并且"vacation"不容许登陆。不要使用"nobody",也不能使用"root"和"postfix"等。
#/etc/passwd
vacation:*:65501:65501::0:0:Virtual Vacation:/nonexistent:/sbin/nologin
#/etc/group
vacation:*:65501:
2. 为自动回复创建数据表
USE postfix;
#
# Table structure for table vacation
#
CREATE TABLE vacation (
email varchar(255) NOT NULL default '',
subject varchar(255) NOT NULL default '',
body text NOT NULL,
cache text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (email),
KEY email (email)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';
3. 创建一个目录
创建一个目录,例如/var/spool/vacation,它只容许"vacation"用户访问
vacation.pl脚本及其日志文件等将放在这里。
4. 复制文件
将$postfixadmin-2.1.0/VIRTUAL_VACATION/vacation.pl文件拷贝到刚才创建的文
件夹中
$ cp vacation.pl ;/vacation.pl
$ chown -R vacation:vacation ;
然后你将会看到:
ls -al ;/
-rwx------ 1 vacation vacation 3356 Dec 21 00:00 vacation.pl*
#p#
5. 修改文件
为了让 vacation.pl 能够执行所有邮件都回复这一特性,下面修改其内容:
将if (do_cache ($email, $orig_from)) { return; } 这句注销掉即可。
6. 开始对系统进行设置
在master.cf中定义transport 的类型:
#/etc/postfix/master.cf:
vacation unix - n n - - pipe
flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}#
在mail.cf 中设定一个 transport maps file
下面举A/B两种方法
A.哈希数据库
#/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
然后添加在/etc/postfix/transport 文件中添加一条新的解析记录
#/etc/postfix/transport
autoreply.yourdomain.com vacation
注意:"autoreply.yourdomain.com"此处与$postfixadmin-2.1.0/config.inc.php文件中的$CONF['vacation_domain']的参数相同
"vacation"要与master.cf 中的 "vacation" 相同
执行 "postmap /etc/postfix/transport" 去创建一个哈希数据库
执行 "postfix reload" 完成配置
B.mysql数据库
#/etc/postfix/main.cf:
transport_maps = mysql:/etc/postfix/mysql/mysql_virtual_transport_maps.cf
其中mysql_virtual_transport_maps.cf的内容如下
user = postfix
password = postfix
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = transport
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'
然后添加使用postfix admin 创建新域"autoreply.com",在Transport段中添加"vacation"
执行 "postmap /etc/postfix/transport" 去创建一个哈希数据库
执行 "postfix reload" 完成配置
看完全文大家有什么感想,有什么不懂的就给我留言,其实挺简单的!
【编辑推荐】