19.6 客戶端的收發信軟件
應用Mail Server有兩種主要的方式,可以直接登錄Linux主機來操作MTA,也可以通過客戶端的MUA軟件來收發信件,下面分別介紹這兩種方式。
19.6.1 Linux Mail
在Unix like的操作系統中都會存在一個可以進行收發信件的指令,即Mail指令。這個指令是由Mail這個軟件所提供的,所以需要先安裝Mail軟件。另外,由於Mail是Linux系統的功能,所以即使端口25(SMTP)沒有啓動,它還是可以使用的,只不過該郵件只會被放到隊列,而無法寄出去。下面來談一談最簡單的Mail用法。
1. 用Mail直接編輯文字郵件與寄信
Mail的用法很簡單,即利用“Mail[E-mail address]”的方式來將信件寄出,“ E-mail address”可以是對外的郵件地址,也可以是本機的賬號。如果是本機賬號的話,直接加賬號名稱即可。例如:Mail root或Mail [email protected]。如果是對外寄信的話,信件默認的Mail from就會填寫main.cf內的myorigin變量的主機名稱。先來試試看,寄給[email protected]:
[root@linux ~]# Mail [email protected] Subject: Just test <==這裏填寫信件標題 This is a test E-mail. <==下面爲信件的內容 bye bye ! . <==注意,這一行只有小數點,代表結束輸入 Cc: <==密碼副本 |
這樣即可將信件寄出。另外,早期的Mail Server是可以接收IP寄信的,例如:Mail dmtsai@[192.168.1.254],記得IP要用中括號包起來。不過由於受到垃圾郵件的影響,現在這種方式幾乎都無法成功的將信件寄出了。
2. 利用已經處理完的純文本文件寄信
這裏說的不是以附件發送的方式,因爲在Mail這個程序裏編輯信件是個很痛苦的差事,不能夠按上、下、左、右鍵回到剛剛編輯有錯誤的地方,很傷腦筋。此時可以通過標準輸入來處理。如果您忘記“< ”代表的意義,請參考《鳥哥的私房菜——基礎學習篇》中的Bash shell章節。例如您要將默認目錄的“.bashrc”寄給別人,可以這樣做:
[root@linux ~]# Mail -s 'My bashrc' dmtsai < ~/.bashrc |
3. 開始接收信件
寄信比較簡單,那麼收信呢?收信還是使用Mail。直接在提示字符後輸入Mail時,會主動的捉取用戶在/var/spool/Mail下的郵件信箱(Mailbox),例如dmtsai這個賬號在輸入Mail後,就會將/var/spool/Mail/dmtsai文件的內容讀出來並顯示到屏幕上,結果如下:
[root@linux ~]# Mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/Mail/dmtsai": 1 message 1 unread >U 1 [email protected] Fri Nov 24 11:34 32/764 "My bashrc" & <==這是Mail軟件的提示字符,可以輸入“?”來查看可用指令 |
上述代碼顯示dmtsai有一封信,且會附上該信件的發信者、標題及收信時間等。可以應用的指令如下。
(1)讀信(直接按Enter或輸入數字按Enter)
當看到“> ”符號時,表示目前Mail所在的郵件字段,您可以直接輸入數字按Enter或在“&”後的光標位置輸入號碼,即可看到該封信件的內容。如果持續按Enter,則會自“>”符號所在的郵件逐次向後讀取每封信件內容。
(2)顯示標題(直接輸入h)
如果要重新顯示每封信的標題,則輸入h即可。
(3)回覆郵件(直接輸入R)
如果要回複目前“>”符號所在的郵件,直接輸入R即可進入剛剛前面介紹過的Mail文字編輯界面了。可以在編輯信件後回覆郵件。
(4)刪除郵件(輸入d)
輸入“d## ”即可刪除郵件。例如要刪除第2封郵件,可以輸入“d 2”如果要刪除第10~50封郵件,可以輸入“d 10-50”。如果有刪除郵件的話,離開Mail box時,要使用q。
(5)儲存郵件到文件(輸入s+文件名)
如果要將郵件資料存下來,可以輸入“s##filename”,例如要將第2封郵件存下來,可以輸入“s 1 uuencode”即可將第2封郵件內容另存爲uuencode文件。
(6)離開Mail(輸入q或x)
要離開Mail可以輸入q或者是x,輸入x可以在不更改Mail box的情況下離開Mail程序,不管剛剛有沒有使用d刪除數據;使用q會將刪除的數據清除,並且會將所有已讀過的信件內容轉存到默認目錄下的mbox文件。也就是說,如果您不想更改Mail box,那就使用x或exit離開,如果想要使剛剛移除的操作生效,就要使用q。不過,使用q之後,只有未讀的信件纔會保留在/var/spool/Mail/accout裏,其他已讀的數據都會被存入“~/mbox”中。例如 /home/dmtsai/mbox爲儲存dmtsai已讀過的信件。
(7)請求幫助
關於Mail更詳細的用法可以輸入help以顯示目前Mail的所有功能。
上面是簡易的Mail收信功能。不過,如果離開Mail時按下q,信件將轉存到“~/mbox”這個郵件信箱,那麼該如何讀取這個文件內的信件數據呢?可簡單的使用以下方式來讀取:
[root@linux ~]# Mail -f ~/mbox |
4. 以“附件”的方式寄信
前面提到的都是信件的內容,那麼能否以“附件”的方式來傳遞文件呢?當然是可以的,不過需要uuencode指令的幫助,在CentOS中這個指令屬於shartuils,請先利用yum來安裝它。接下來可以這樣使用:
[root@linux ~]# [利用uuencode編碼 ] | [利用Mail寄出去] [root@linux ~]# uuencode [實際文件] [信件中的文件名]|Mail-s '標題' E-mail 範例一:將“~/.bashrc”以附件的方式寄給dmtsai [root@linux ~]# uuencode ~/.bashrc bashrc | Mail -s 'test encode' dmtsai |
這樣就能寄出去了,不過,如果收下這封信件呢?需要通過譯碼器來解碼。首先需要將該文件存下來,然後進行如下操作:
[root@linux ~]# Mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/Mail/dmtsai": 2 messages 2 unread >U 1 [email protected] Fri Nov 24 11:34 32/764 "My bashrc" U 2 [email protected] Fri Nov 24 11:52 24/904 "test encode" & s 2 test_encode "test_encode" [New file] & exit [root@linux ~]# uudecode test_encode -o decode 加密文件 輸出文件 |
雖然Mail指令不是很好用,但至少它可以提供一種在Linux純文本模式下的簡單的收發信件功能。我們最好還是熟悉一下。