UNIX mail 線上教材 |
UNIX 系統種有幾種不同的基本 e-mail 工具軟體,我們在此介紹一種工具, 稱之為 mail。 這個基本的 MUA 只能處理未經編碼的純文字信件 (看第 6 講), 而且很難處理附件,所以事實上已經很少人使用了。 我們將此教材留在這裡,給有興趣的人參考。 或許也算是個歷史文件吧。
這個非常基本的 e-mail 工具,只能收發純文字信件。 如果經過 uuencode,也可以傳送非文字檔案,但是近年來因為其他工具的發展, 已經很少需要使用 uuencode 了,故從略。 以下我們只講最基本的 mail 操作。
[ 寄信 ]‧[ 設立別名或地址簿 ]‧ [ 讀信 ]‧[ 郵件夾 ]‧ [ mail 設定 ]
如果要寄出一封信,下指令
mail RECVER其中 RECVER 代表一個 e-mail 地址。 如果同時要寄給許多人,也可以用指令
mail RECVER1 RECVER2 RECVER3 ...然後就會看到如下的提示號
Subject:在此輸入信件的主題。只能有一行,而且最好只用 ASCII 字符。 寫好了之後按 Enter。
接著,游標就停留在下一列的第一格,沒有提示號。 這時候,請輸入信件內容。 注意,這個編輯環境的功能非常少, 基本上只能在同一列中以 Backspace 或 Delete 鍵修改文字, 一旦按了 Enter 進入下一列之後,就不能返回修改前面的文字了。 信件寫完之後,按 Enter 使游標在第一格,然後按 Ctrl+D 寄出並結束 mail 程式。
如果已經準備好一個純文字檔案 a.txt 而打算將它當做信件內容,寄給某人, 則可以下指令
mail -s "SUBJECT" RECVER < a.txt其中 SUBJECT 是信件主題。 注意,這並不等於是夾檔案,a.txt 是信件內容,並非附件。
此處需要用到編輯器,如果還不會,可以以後再學。
在您的帳號根目錄裡面,編輯一個名叫 .mailrc 的檔案。 如果在檔案內輸入一列,如下:
alias chiu boyuan@cycs02.ice.cycu.edu.tw則 chiu 就是 boyuan@cycs02.ice.cycu.edu.tw 這一長串難記的郵件地址之別名。 以後,您可以用
mail chiu來代替
mail boyuan@cycs02.ice.cycu.edu.tw
一個別名也可以代表許多個郵件地址,而那些地址本身還可以是其他別名。 例如
alias chiu boyuan@cycs02.ice.cycu.edu.tw則 teachers 這個別名就代表了三個郵件地址,說 mail teachers 就會同時寄一封信給這三位收信人。
alias luofz gefjulo@saturn.yzu.edu.tw
alias teachers chiu chern@math.ntu.edu.tw luofz
以下所說的,牽涉到資料夾和檔案路徑的部分,您可以在第四講中學習。 牽涉到 mail 程式的設定部分,以中大數學系的設定為準。 其他地方的 UNIX 系統未必如此設定。 如果您想要將您的 UNIX 系統設定得和此處所說的一樣, 請參考 [mail 設定] 這一節。 |
下指令
以上 ? 是 mail 環境的提示號,以上的是郵件目錄。 從郵件目錄每一列的最左邊看起,如果有一個 > 符號,代表「正在處理的郵件」。 第二欄表示郵件的狀態,O 1 Shann Wei-Chang Tue Aug 22 09:44 14/379 test 2 U 2 Shann Wei-Chang Thu Oct 19 16:09 14/370 test S 3 wingip Tue Oct 3 10:39 33/1247 Art and Science R 4 Mr zhang_yi`huang' Tue Oct 24 16:19 13/389 hi everybody >N 5 Tse-Liang Yeh Wed Oct 25 15:51 46/2170 環安的事 ?
mail 環境全是文字操作,也就是說必須在 ? 提示號後面下指令。 搶您讀信的時候,「目前資料夾」是您的帳號根目錄裡面的 Mail 資料夾。 所有您讀過的信,除非刪除或是另存其他郵件夾,全部都被保留在收信夾內。 這樣雖然方便,但是也會使得您的收信夾越來越大。 所以,請隨時整理收信夾 (刪除舊信或是另存其他郵件夾), 否則系統管理者會進場干預。
以下是 mail 環境內的基本指令:
z | mail 一次最多只能呈現 20 份郵件目錄,用 z 翻下一頁,用 z- 翻上一頁 |
---|---|
h# | 例如 h25 將郵件目錄翻到含有 25 號郵件的那一頁目錄。 如果沒有輸入號碼,顯示含有「正在處理的郵件」的那一頁目錄 |
# | 例如 25 就是展讀第 25 號郵件。如果沒有輸入號碼就只按 Enter, 便展讀「正在處理的郵件」。如果郵件的內容超過一頁 (25 列), 就會進入閱讀環境:按 Space 翻下一頁,b 翻上一頁,q 離開。 展讀的郵件包括一部分的檔頭部分,#只是郵件的主題和內容而已 |
d# | 例如 d25 就是刪除第 25 號郵件。如果沒有輸入號碼就是刪除「正在處理的郵件」。 然後 mail 會自動展讀下一號的郵件 |
u# | 如果剛才刪除一份郵件,在沒有結束 mail 環境之前,還可以恢復。 例如 u25 就是恢復第 25 號郵件 |
r# | 例如 r25 就是回覆 (reply) 第 25 號郵件。如果沒有輸入號碼, 就是回覆「正在處理的郵件」。mail 不會自動引用原文。 |
s# FILE | 例如 s25 mate 就是將第 25 號郵件儲存到名為 mate 的郵件夾內。 如果 mate 不存在,會自動新建。 如果沒有輸入號碼,則儲存「正在處理的郵件」。 如果沒有指定郵件夾的名稱,則儲存到 mbox 郵件夾內。 |
q | 結束 mail,並更新郵夾內的郵件目錄。 例如讀過而沒有刪除、也沒有儲存的郵件,下次打開郵件夾時, 將會出現 O 記號。刪除的郵件,此後就真的消失了。 |
x | 結束 mail,但是不更新郵夾內的郵件目錄。 |
所謂郵件夾 (mailbox) 只是個集存郵件的檔案, 在 UNIX 系統內,它是一個普通純文字檔案,並非資料夾。 每個用戶有一個,而且只有一個,收信夾 (INBOX mailbox)。 這個收信夾不在個人的帳號根目錄之下,而是在一個公共使用的資料夾內。 通常是 /var/spool/mail 或是 /var/mail。 而各用戶的收信夾檔案名,就是他∕她的帳號名。
所有新寄來的 e-mail,都集存在收信夾裡面。 為了用戶的方便,除非是經過 mail 程式明白地刪除或儲存的郵件, 都被保存在收信夾裡面。 但是,如此一來,有些用戶的收信夾可能會佔用很大的磁碟空間。 一個 UNIX 系統的所有用戶,都有一個收信夾在同一個磁碟上。 只要這個磁碟滿了,則所有用戶都無法接收新郵件,甚至可能遺失整個收信夾。 可以想像這是個嚴重的情況。 所以,請大家應該盡量在讀信之後,刪除不必要的郵件, 或是將必要的郵件轉存自己的郵件夾。
當我們用 mail 讀信的時候,自動打開的是收信夾。 當我們儲存郵件到郵件夾的時候,那個郵件夾其實是 HOME/Mail 資料夾內的一個檔案, 其中 HOME 代表用戶的帳號根目錄。 如果想要閱讀自己的郵件夾內的信件,則可以要求 mail 打開該對應檔案。
mail -f MBOX就會進入 mail 的讀信環境。所有的操作,都和 [讀信] 那一節所說的一樣。
mail -f +MBOX就會進入 mail 的讀信環境。所有的操作,也都和 [讀信] 那一節所說的一樣。
除了收信夾之外,還有兩個特殊的郵件夾,應該都是位於郵件資料夾內的檔案。 一個叫做 mbox,這是當您說要儲存一個郵件,但是卻沒有指名要存到哪裡的時候, mail 自動幫您儲存的地方。 另一個叫做 sentout,這是當您寄信出去的時候,mail 自動幫您留的副本。 也就是說,所有您寄出去的信,都可以在 sentout 這個郵件夾內找到。
所有的郵件夾都可能越來越大,除了可能浪費磁碟空間之外, 也會使得打開郵件夾的速度越來越慢。 您還是需要適當地管理這些郵件夾,不要讓它們變得像恐龍一樣又慢又大。
所有郵件夾都是純文字檔案。所以您可以用任何一個編輯器來閱讀或修改它。 它的格式非常單純。只要有一列文字,其第一個字是
From就代表是一份郵件的開始。 這也就說明了,為什麼當您在寫信的時候,如果有一列的第一個字是 From, 則收信的人會看到
>From這是寄信程式自動為您添上去的,以免混淆了郵件夾的格式。
中大數學系的 UNIX 系統已經是如此設定,所以用戶不必自行修改。
首先,您要知道自己使用的 mail 到底是哪個檔案。用
which mail看看。最好是 /bin/mailx 或 /usr/bin/mailx,其次是 /usr/ucb/mail 或 /usr/ucb/Mail。如果不是這些,請使用文字操作介面的功能, 重新設定 PATH 或者是利用 alias,使得 mail 指令所執行的檔案, 是 /bin/mailx。
當 mail 啟動的時候,會先讀取一個系統設定檔,名叫 mailx.rc 通常放在 /etc/mail 裡面。 這個檔案記錄著 mail 的基本設定規格, 它是個人人可讀的純文字檔,您可以閱讀參考。 但是只有系統管理者才能修改這個檔案,一般用戶動不得。 我們假設 mailx.rc 這個檔案維持原樣,而且大家的 mailx.rc 檔案都一樣。
當 mail 讀過了 mailx.rc 檔案,就會在您的帳號根目錄中, 尋找一個名叫 .mailrc 的隱藏檔案。 如果存在,mail 就讀它,獲得進一步的設定規格。
如果您是系統管理者,則可以修改 mailx.rc, 否則可以修改自己的 .mailrc。以下只是建議,它們是中大數學系對於 mail 的設定。
此外,每個用戶的帳號根目錄內,要有一個 Mail 資料夾, 而且其權限模式應該是 rwx------。set ask noaskcc crt=22 autoprint hold set MBOX=$HOME/Mail/mbox set indentprefix="> " set folder=Mail set record=$HOME/Mail/sentout ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via if r cd $HOME/Mail endif
此外,要設定三個系統參數 PAGER、LESS 和 LESSCHARSET,其值分別是
setenv PAGER less setenv LESS "-fCe" setenv LESSCHARSET latin1
單維彰 (2000/10/27) ---