1 頁 (共 1 頁)

利用vacation 程式自動回覆郵件

發表於 : 2005-02-03 12:29:42
schumi
from http://www.adj.idv.tw/phpBB2/viewtopic. ... 99390d2f07


原文取自:Netman
加入自己個人一點點心得修改...

作者: Song (Song) 看板: Linux
標題: [文件]Vacation 自動回信程式
時間: Thu Oct 5 16:14:02 2000

================
vacation 用途簡介 :

當我們在上班日子裡,放一個特別的假期時,電子郵件依然不斷的湧入。
等放完假回來的時候,發現信箱中一堆抱怨的信件:「前天信件中的問題,
為什麼還沒有處理?...」、「昨天寄的信件到底有沒有看到?...」。

如果您有以上的問題,您就可以考慮安裝 vacation 自動回信程式。

如果您沒有以上的問題,您也可以考慮安裝 vacation 自動回信程式。

================
版本環境 << Red Hat 7.3 >> :

sendmail : 8.11.6
vacation : 1.2.6

================
vacation 取得 :

http://freshmeat.net/redir/linuxvacatio ... 1.i386.rpm

================
vacation 安裝 :

1. rpm -Uvh vacation-1.2.6-1.i386.rpm
<安裝完成>

這麼快,這樣就裝好了?

是的,就是這麼簡單。
但是還要修改設定喔

================
注意!! .forward & .vacation.msg & .vacation.db 的擁有者必須是使用者本身
Postfix 並不具備 root 的權限!!
vacation 設定 :

.forward
--------
在使用者 service 的家目錄中,新增檔案 .forward。如: /home/service/.forward
檔案的內容只要一行:
\song, "|/usr/bin/vacation song"

( 註:這個檔案要 chmod 600 .forward ,簡單說 group、other 不可有
write 權限。)

.vacation.msg
-------------
在使用者的家目錄中,新增檔案 .vacation.msg。如: /home/service/.vacation.msg

這個檔案就是自動回信的內容,其中可以使用寄入信件的標題及寄信人作為變數
使用。標題: $SUBJECT,寄信人:$FROM。其餘欄位是否也可以使用?請自行測試

範例檔:
Subject: Re:$SUBJECT
From: service ( 由 vacation 程式自動回信 )
$FROM 您好:
我目前無法看到這封信。
當我回來上班並看過這封信後,我會盡快給您回信。
謝謝。

在 man vacation 中有提到,如果要加入 Reply-To: 欄位,啟動時要加入 -r 的
參數。如果寄入的信件中,使用者的帳號沒有在 To: 或 Cc: 的欄位中,則不會
自動回信的,除非啟動時使用 -j 參數。

================
vacation 啟動 :

當上述設定都完成後,我們就要來啟動 Vacation 了 ...
如果是以 root 登入:vacation -I service
如果是以 song 登入:vacation -I
如果 .vacation.msg 中有使用到 Reply-To: 欄位:vacation -I -r song

如此會在 /home/service 底下產生一個檔案 .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 的話,會有錯誤出現。解決之道就是在 /etc/shells 檔案內加入 /dev/null 就可以了。
#vi /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/bash2
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
/bin/false <--加入這一行