作者: 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 ==========



---------