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