附加:搜索网上资料,利用maildropfilter做自动回复。在.mailfilter中设置。http://en.gentoo-wiki.com/wiki/Maildrop
作者: Song (Song) 广告牌: Linux
标题: [文件]Vacation 自动回信程序
时间: Thu Oct 5 16:14:02 2000
================
vacation 用途简介 :
当我们在上班日子里,放一个特别的假期时,电子邮件依然不断的涌入。等放完假回来的时候,发现信箱中一堆抱怨的信件:「前天信件中的问题,为什么还没有处理?...」、「昨天寄的信件到底有没有看到?...」。如果您有以上的问题,您就可以考虑安装 vacation 自动回信程序。如果您没有以上的问题,您也可以考虑安装 vacation 自动回信程序。 :)
================
版本环境 << Slackware 7.0 >> :
sendmail : 8.9.3
vacation : 1.2.2
================
vacation 取得 :
http://freshmeat.net/projects/linuxvacation/download/vacation-1.2.2.tar.gz
================
vacation 安装 :
1. cd /usr/src
2. tar zxf vacation-1.2.2.tar.gz ( 文件名称请自行加上路径 :)
3. cd vacation
4. make install
<安装完成>
这么快,这样就装好了?是的,就是这么简单。但是还要修改设定喔 :-)
( ps:如果安装时遇到问题,请参考 README 文件 )
================
vacation 设定 :
smrsh:
------
因为 sendmail 使用 smrsh 限制 shell 的使用,所以得先改 smrsh 的部分。
参考小州兄在 Linux 版上贴过的文章,要在 /etc/smrsh 目录内联结欲执行的程序 ln -s /usr/bin/vacation 。
不同的 distribution 可能会有不同的目录。我在 Slackware 7.0 中 man smrsh得到的讯息是要在 /usr/adm/sm.bin 的目录内作联结。 所以这个部分请自行参考系统内的 man smrsh 吧。
.forward
--------
在使用者 song 的家目录中,新增档案 .forward。如: /home/song/.forward档案的内容只要一行:
\song, "|/usr/bin/vacation song"
( 小州兄:这个档案要 chmod 600 .forward ,简单说 group、other 不可有 write 权限。)
.vacation.msg
-------------
在使用者的家目录中,新增档案 .vacation.msg。如: /home/song/.vacation.msg。这个档案就是自动回信的内容,其中可以使用寄入信件的标题及寄信人作为变量使用。标题: $SUBJECT,寄信人:$FROM。其余字段是否也可以使用?请自行测试:)
范例文件:
Subject: Re:$SUBJECT
From: Song ( 由 vacation 程序自动回信 )
$FROM 您好:
我目前无法看到这封信。
当我回来上班并看过这封信后,我会尽快给您回信。
谢谢。
在 man vacation 中有提到,如果要加入 Reply-To: 字段,启动时要加入 -r 的参数。如果寄入的信件中,使用者的账号没有在 To: 或 Cc: 的字段中,则不会自动回信的,除非启动时使用 -j 参数。
================
vacation 启动 :
当上述设定都完成后,我们就要来启动 Vacation 了 ...
如果是以 root 登入:vacation -I song
如果是以 song 登入:vacation -I
如果 .vacation.msg 中有使用到 Reply-To: 字段:vacation -I -r song
如此会在 /home/song 底下产生一个档案 .vacation.db 这样就可以来测试了。
当您测试了第一封信是正确的,一高兴又连测了八封,却都没有响应的时候,先别忙着骂我,继续看下去:
vacation 会把回过信的邮件地址存入 .vacation.db 中,同时在 7 天之中不会再自动回复相同的邮件地址。7 天是系统默认值,如要修改可在启动时使用 -tN的参数,N 是天数,如:vacation -I -r -t1 song ,这样隔 1 天就会再自动回复相同的邮件地址了。
如果为了测试,可以在自动回复一封信后,再重新启动一次,如此就会清空 .vacation.db 的资料。
================
vacation 停止 :
这个最容易,只要将 .forward 改名或删除就可以了。
建议用改名的方式,下次假期要使用时,只要再改回来就可以了。
================
vacation 其它心得 :
vacation 执行时要用到使用者的 shell,如果使用者的 shell 被设成 /dev/null
或是 /bin/false 的话,会有错误出现。解决之道就是把使用者的 shell 改回来。
pico /etc/passwd
song:x:1999:199:,,,:/home/song:/dev/null → /bin/bash
如果这是用来限制使用者 telnet 进系统的方法的话,抱歉,换个方式吧!
( 小州兄:在 /etc/shells 档案内加入 /dev/null 就可以了。)
( Song:这个方法好多了。)
================
文件版权宣告 :)
不论是商业公司,教育单位还是个人;不管是想用网站、印刷还是转贴收录,看喜欢就拿去用吧 :)
但是请保留此「文件版权宣告」及作者 ID。
关于小州兄补充部分的版权,请径洽小州兄询问。 :)
--
:)
========== Song Huang ==========