sendmail 下對所有寄出與寄進的信件存檔備份 以下示範所用的版本為 sendmail-8.11.6。 步驟如下 產生負責備份的程式 當然你也可以取用筆者編譯好的程式檔filter, 將其置於 /usr/sbin 下。 如果你的系統上已經安裝好了 gcc 等相關套件(安裝 Linux 時已選擇了 Kernel 或 Software Developement 時會自動安裝),也可以把 milter.tbz2 取回, 在你所習慣的工作目錄下解開,執行 make install 即會把 filter 程式檔安裝在 /usr/sbin 下。 有關 milter.tgz 的說明: 取自於 sendmail 的原始程式碼套件。 filter.c 取自於 原始程式碼套件中 libmilter/README 檔所附的範例。 唯原範例把信件備份於 /tmp,筆者修改路徑為 /var/spool/mail.backup。 修改 /etc/mail/sendmail.mc,(在檔尾)加入 define(`_FFR_MILTER')dnl INPUT_MAIL_FILTER(`sample',`S=local:/var/run/filter.sock')dnl 在 /etc/mail 下執行 m4 sendmail.mc > /etc/sendmail.cf。 先將 /etc/init.d/sendmail 備份,再修改該檔, (如果你用的是 Red Hat 7.2,可以直接取回 這個檔案): 先找到以下這一段, start() { # Start daemons. echo -n $"Starting $prog: " 在其後加上 rm -f /var/run/filter.sock /usr/sbin/filter -p local:/var/run/filter.sock & echo $! > /var/run/filter.pid sleep 3 chmod go-rwx /var/run/filter.sock 再先找到以下這一段, stop() { # Stop daemons. echo -n $"Shutting down $prog: " killproc sendmail RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail 在其後加上 [ -f /var/run/filter.pid ] && { kill -KILL `cat /var/run/filter.pid` rm -f /var/run/filter.sock } 執行 mkdir /var/spool/mail.bakcup chmod u=rwx,go= /var/spool/mail.backup 以建立 /var/spool/mail.backup 這個目錄。 執行 service sendmail restart 重新啟動 sendmail。