目前在本校工作站裝設的郵件工具程式有二,一個是標准 BSD UNIX所提供的 MAIL 程式,一個是由 Dave Taylor 在 HP LAB 所發展的一個叫作 ELM 的郵件工具程式,我們比較推薦初學者來使用 ELM ,因為它是全螢幕式的,而且使用者介面也比較友善,幾乎不須教導就可使用了, 相對的話,標准UNIX MAIL 就比較簡潔,而且若使用熟練的話, 比起 ELM 更為方便。由於其較為標准,故在許多別的機器上皆有提供此郵件工具程式,而不一定裝有 ELM ,因此關於 ELM 請讀者自行使用, 有問題的話可洽本中心谘詢室。
1-2 標准 UNIX MAIL
在本工作站上的 UNIX 叫做 SUNOS,為 BSD 版本中的一派,它所提供的 MAIL 工具程式就叫作 MAIL,你可以在提示符號下,打入 MAIL 就可啟動它,MAIL程式提供有讀信、寫信、寄信、收信、轉寄、儲存和刪除信件的功能,這個 MAIL 程式可以在一般的 TTY 下執行,因此你可以透過網路,TELNET 至本工作站,來使用 E-MAIL 服務。
1-2-1 啟動 MAIL 系統
通常在你 LOGIN 進入系統後,如果你有新的信寄到,螢幕上有顯示一行訊息 "You have mail" 或 " You have new mail",這時你只要打入 mail 就可以看看是誰寄信給你。如果目前並沒有信寄來,而你打入 mail 的話,系統則會告訴你: No mail for user"。
mail程式的操作通常在二個狀態之下,一般寄信皆在 Shell 的命令行模式下直接下達即可,而讀信、轉寄、刪除、儲存等,則在 mail 程式內的命令模式中下達 ( mail 在此模式時,會出現一提示符號, 准備接收你所下的命令,一般來講系統的內定提示符號為 &)。
1-2-2 寄信
我們最先從寄一封信給自己開始,來學習如何操作 mail 工具程式,要寫一封信,首先我們必須知道收信人的地址,在電子郵遞中,這個地址叫做 E-MAIL ADDRESS 此地址,是由三部份所組成:(a) 收信人姓名 (login name) (b) 收信人所在的機器名稱 (hostname) (c) 收信人所在的網路區域名稱 (domain name) (讀者可以連想如同在現實生活中的郵政糸統一般,如某某縣市、什麽路、幾號、某
某人等),其格式如下:
其讀法為 : " 我要寄信給一個叫做 user-name 的人, 他住在叫做hostname 的電腦上,那一台電腦是位於 domainname 這個區域內 "(注意: user-name 與 hostname 中間以'@'符號分隔,'@'讀作 at,而 hostname 與 domainname 則以句點"." 隔開)。
1-2-3 找出自己的 E-MAIL ADDRESS
首先我們先來找出你在此工作站的 E-MAIL ADDRESS 為何:
1. user-name: 此名稱即為你 login 時,所輸入的 login-name ,或者你也可以用 whoami 命令來查看系統認定的你的稱謂,例如:
mail% whoami
lin
mail%
2. host-name: 此名稱即你所在機器的名字,通常在 login 時,就會有顯示出來,另外你也可以用 hostname 命令來查詢,例如 :
mail% hostname
mail%
因此本工作站的名字恰好就叫做 mail
3. domain-name:此名稱即為你所在的機器所在電腦網路的區域名稱,此名稱可用 domainname 命令查詢,例如 :
mail% domainname
+ncku.edu.tw
mail%
這表示本工作站是位於 ncku.edu.tw 這個domain之內。( '+' 號可不管),所以合起來之後,你的 E-MAIL 收信地址是
同樣的,你也可以用上述同樣的方法,教導你的朋友找出他自己的E-MAIL ADDRESS。
1-2-4 寄信給自己
想要寄信給自己,只要在 Shell 下,鍵入下列命令即可( 假設你的 username 叫作 'lin' )
mail%
mail% mail lin
Subject: A test letter
test
test
test
.
Cc:
mail%
說明:
在這裡,因為你是寫信給同一台機器上的人 (自己) ,因此 @ 後面的部份便可省略,系統會認定你是要寫信給一個在同一機器上叫做 lin 的人,而不替你作轉寄的工作,譬如你有問題要問本機的root ,則打入 :
mail% mail root
此信的標題或主旨,輸入標題然後按下 Enter 後就可打入信件的內容,最後要結束信件本文時,於行首處打入句號 "." 做為信件的結尾 , 此符號在 mail 程式中有此一特定的意義 ( 另一個方法是按CTRL-D),接著 mail 又 出現 Cc: 的提示符號, 表示詢問你是否要順便將此信寄給某人,若沒有就打入 ENTER 即可,然後又回到Shell,信件便寄出去了。若在寫信途中, 臨時想放棄, 可打二次 CTRL-C 退出 mail 程式。
1-2-5 寄信給別人
我們可以把 E-MAIL ADDRESS 想成如下的格式
[email protected] => user-name@where
因此在上例中,我們如果是寄給同一機器上的 user,只要打 user-name 的部分即可 @where 部份便可省略,當然如果你要全部打也可以,我們稱這一種格式的 E-MAIL ADDRESS 叫做 FQDN(Full Q-ualify Domain Name),例如:寫給自己的信,可下如下的命令
mail% mail [email protected]
這與如下的命令是同樣的
mail% mail lin
而如果你所要送的信是要送往別的機器的話,就必須非用 FQDN 不可,這樣 mail 才有辦法替你轉寄, 例如要寫信給本校電算中心一台叫做 dec6 的工作站上的 root ,就必須用如下的方式
mail% mail [email protected]
才能寄的到,如果@where的部分省略了,就變成寄給本機的 root了。
1-2-6 讀信
在1-2-4 中,當你把信寄出去後,我們便可以打 mail,命令來讀取信件,例如你可能會看到如下的螢幕:
1. 寄信時,可將欲寄的內容拷背一份存成檔案或 folder,其方法為在 Cc: 提示下,鍵入檔案的全路徑名或 folder-name ,如 Cc : ~/text.doc ('~' 表示 Home directory)
或
Cc: +text.folder
注意: 若不是全路徑名,則此時 mail 會把檔名當作是欲寄送的收信人姓名,而寄出去,然後被退回。
2. 欲寄給一群人時,可在 mail 的提示符號下指定,如:
mail% mail user1@where1,user2@where2,user3@where3
亦可在 Cc 中指定其串列,各 user 之間須以逗號 ','分開,但兩者的差別為收信人使用 R 命令(不是r) 時,只會 reply 給在 Cc 中的收信人串列,而不會回信給在 shell 命令中指定的其他收件人。
3. Bcc: 與 Cc: 的差別
上面提到 Cc: 是記錄這一封同時也寄送給那些人,如果寄信人不想讓收信人知道他所收到的信,有那些人也收到的話,可以使用 Bcc (Blind Carbon Copy) 來設定收件人串列,這可在編輯信件時,加入~h 命令來修改。亦即 mail 程式會把 Cc 的訊息,連同信件內容寄出 (而不會把 Bcc: 的訊息寄出)。
1-2-22 寄信給一群人 (group)
欲寄信給一群人時,除了上面 Cc 的補充說明方法外,亦可由下列方式寄出。
首先用 vi 來編輯 ~/.mailrc 檔案,然後加入下面這句話。
alias user1@where1,user2@where2,user3@where3
例如:
alias ct lin@dec1 jou@mail yang@dec6 rlwu@mail
(其中 ct 代表 lin@dec1 jou@mail yang@dec6 rlwu@mail 的別名)以後如用 mail ct 即代表寄給 ct 所包括的那一群人。若在 Cc: 中用 ct 即副本寄給 ct 所包括的那一群人。相對的 Bcc: 亦可用別名來寄給一群人。
如果有任何問題請洽成功大學電算中心谘詢室, 電話: 61010。
---------------------------------------------------------------------
[FAQ]
┌———————————————————————————————┐
│問 : 若有兩個以上不同的 Email 帳號, 請問如何能做到, 不論在 │
│ 那一個帳號 login 均能知道或看到有新的 mail. (用 .forward │
│ 檔不行, 因為那樣 login 原來那邊就看不到 mail 了) │
└———————————————————————————————┘
答 : 用 ".forward" 可以的, 我就一直這樣用.
看來, 你要再去看一遍 ".forward" 的用法.
man sendmail ( or man -k forward ...)
┌———————————————————————————————┐
│問 : 小弟最近收到一封 mail,如下: │
│ >hi! │
│ >□YP□HG□xT□i1□Of□GI?? │
│ 全是一堆亂碼請問各位大哥!這是什麽現象造成的? │
└———————————————————————————————┘
答 : 原因:
1) 對方的系統不能send 8-bit 的mail, 所以你會收到亂碼。
沒辦法還原, 要求對方重send吧!
2) 對方可能是用pine 來send, 而pine 會有它的編碼方法,
可以用metamail 來解讀。
3) ...................................................
┌———————————————————————————————┐
│問 : 在 VMS 中的 mail有一個將 e-mail保留, 並且可以像子目錄那 │
│ 樣加以分類的功能, 但是我在 unix中似乎沒有找到類似的東西. │
│ 請問 unix有沒有提供這種功能? │
└———————————————————————————————┘
答 : 若用 elm 的話,可以把 mail 存到不同的 folder(file) 中,然後在
改變你的 folder 就可達到你所說的功能.
┌————————————————————————————————┐
│問 : 我的 mbox 有一大堆信, 在 unix 下用 more 可以看到所有的信, │
│ 可是無法編輯...:( 誰能告訴我怎麽辦? │
└————————————————————————————————┘
答 : 其實在 unix 中, 用一般 editor 就可以編輯 mbox, 不過,
elm 提供一個方便的功能, 用 :
elm -f mbox
elm 會幫你編排好以前你所有的信件, 讓你一一編輯。
┌————————————————————————————┐
│問 : 如何在自己的信上加上簽名檔, 就像在 tin 上一樣 ? │
└————————————————————————————┘
答 : 如果你使用的是 elm, 在根目錄下的 .elm/elmrc 中加入
remotesignature=your remote signature file name
localsignature=your local signature file name
注意你的檔案路徑是否正確
另外 elm 的 header 可以在你寫完信存檔之後, 他會問你要寄
或是要干嘛的, 你按 "h" 就可以進入 header 的選項了。
不過, 為了簡單起見,可以在建立 $HOME/.elm/elmhearders
============內容如下============
Return-Receipt-To:your e-mail address
=============================
┌———————————————————————————————┐
│問 : 有沒有辦法將 e-mail 設成當有人寄信給我, 我的機器可以自動 │
│ 回一封信給寄信者有點類似 elmheader 的功能。 │
└———————————————————————————————┘
答 : 試試看 "vacation" 這個工具吧 !
┌———————————————————————————————┐
│問 : 有那位先進可告知從那可取得可show中文標頭的elm │
│ 或者在程式那個地方須修改 ? │
└———————————————————————————————┘
答 : 在 .login or .cshrc 中加上如下兩行 :
setenv LC_CTYPE iso_8859_1
stty pass8
┌————————————————————————————————┐
│問 : 在使用 elm 時,所看到的每一個 mail 前面都會出現一個 'M' │
│ 符號, 而當要讀它的時後,就會出現下列訊息,而無法讀取, │
│ sh: metamail : not found. │
│ 是那裡設定出了問題嗎?? │
│ PS. 若用 mail 來看信的話一切正常. │
└————————————————————————————————┘
答 : 看來你們的 elm 有設定用 metamail 來看信 (用 metamail 就
可以直接 寄圖形檔, 聲音檔... ) 可是系統管理員並沒有將
metamail 安裝完成..
另外, 別忘了檢查自己的 $HOME/.elm/.elmrc 中的設定 !
進 elm 後, 按 "O" 鍵 來設定, 用 ">" 來儲存 !