SYNOPSIS(總覽)
mail [-iInv ] [-s subject ] [-c cc-addr ] [-b bcc-addr ] to-addr...
mail [-iInNv -f ] [name ]
mail [-iInNv [-u user ] ]
INTRODUCTION(介紹)
Mail 是一個智能化的郵件處理系統,它具有 ed1 的命令語法回憶功能,只是用消息替換了行罷了.
- -v
- 詳盡模式. 傳輸郵件的細節都呈現在用戶的終端上.
- -i
- 忽略tty中斷信號. 這對於在嘈雜的電話線路上使用 mail 特別有用.
- -I
- 強迫mail以交互模式運行,即使其不是通過終端輸入的. 特別地,正在發送郵件時, ` ~ ' 特殊字符只在交互模式下才起作用.
- -n
- 禁止在啟動時讀取 /etc/mail.rc
- -N
- 當閱讀郵件或編輯郵件夾時禁止消息頭的初始化顯示.
- -s
- 在命令行上指定主題(僅把 - s 標識后的第一個參數用作主題;注意對包含空格的主題加上引號.)
- -c
- 發送復件(carbon copy)給用戶 list
- -b
- 發送隱藏的復寫副本(blind carbon copy)給用戶 list list應為以逗號分隔的名字列表.
- -f
- 讀入你的 mbox (或指定文件) 中的內容進行處理;當你 quit 時, mail 會把未刪除的消息寫回該文件.
- -u
-
相當於:
mail -f /var/spool/mail/user
Sending mail(發送郵件)
要發送一條消息給一個或更多的人, mail 可以以郵件將要發送的人名作為參數進行調用. 然后要求你輸入你的消息,並在每行的開頭跟着一個 `control-D ' 下面的部分 Replying to or originating mail 描述了一些 mail 用於幫助你操作信件的功能.
Reading mail(閱讀郵件)
在一般的用法中 mail 不帶任何參數,並通過郵局(post office)檢查你的郵件,然后對於每條找到的消息打印出一個行頭.當前的消息初始為第一條消息(序號1),而且可以使用 print 命令(可簡省為 `p ' ) 打印. 你可以使用命令 `+ ' 和 `- ' 如在 ed1 的各行間移動一樣前后移動消息,或者移動到一個簡單的序號.
Disposing of mail(丟棄郵件).
在檢查了消息之后,你可以 delete `d ' ) 這條消息或者 reply `r ' ) 它. 刪除會導致 mail 程序遺忘該條消息. 這並非不能撤銷;可以通過給定其序號來 undeleted `u ' ) 該條消息,或者通過指定 exit `x ' ) 命令來終止 mail 的會話. 不過,刪除了的消息就會永遠消失不再出現.
Specifying messages(指定消息)
命令如 print 和 delete 可以給定一組消息的序號作為參數來一次性對這組消息進行操作. 所以, ``delete 1 2 '' 會刪除消息1和2,而 ``delete 1-5 '' 會刪除消息1到5. 特殊名字 `* ' 表示所有消息,而 `$ ' 表示最后一條消息;因此用來打印一條消息的首幾行的命令 top 可用在 ``top * '' 中以打印所有消息的首幾行.
Replying to or originating mail(回復或發送郵件).
你可以使用 reply 命令來回復一條消息,將它發送回消息的發送者. 你輸入的一直到文末的文本定義了該條消息的內容. 當你正在操作一條消息時, mail 處理以字符 `~ ' 開頭的行會有些特殊. 例如,輸入 `~m ' (這一行就這么一句)會放置一個當前消息的拷貝到回復中,其可以通過tabstop右移位(參見下面的 indentprefix 變量). 其它擴展符可用來設置主題字段,添加和刪除消息的收件人,並且允許你返回編輯器來修改消息,或者用shell執行某些命令. (這些選項都在下面的summary中給定.)
Ending a mail processing session(終止郵件處理會話).
你可以使用 quit `q ' ) 命令來終止 mail 會話. 檢查了的郵件會轉到你的 mbox 文件,除非它們因為刪除而被丟棄了. 未檢查的郵件則返回到郵局. (參見上面的 -f 選項).
Personal and systemwide distribution lists(個人和系統的發送列表).
可以創建個人的發送列表,這樣,例如你發送郵件到 ``cohorts '' 時,即可發送它給一組人. 這樣的列表可以通過在你home目錄下的文件 .mailrc 中放置如下一行:
alias cohorts bill ozalp jkf mark kridle@ucbcory
來實現. 這類別名的當前列表可以使用 mail 中的 alias 命令來顯示. 系統級的發送列表可以通過編輯 /etc/aliases 來創建,參看 aliases(5) 和 sendmail(8); 這些具有不同的語法. 在你發送的郵件中,私有別名會在發送給其他人的郵件中展開,這樣他們就能夠 reply 給收件人. 系統級的 aliases 在郵件發送時不會展開,但是當所有郵件通過 sendmail 時,任何返回機器的回復信都會展開系統級別名.
Network mail(網絡郵件)(ARPA,UUCP,Berknet)
參見 mailaddr(7) 以獲知關於網絡地址的描述.
Mail 可以在 .mailrc 文件中設置一些選項以改變其操作;因而 ``set askcc '' 會激活 askcc 功能. (這些選項都總結在下面.)
SUMMARY(總結)
(改編自`Mail Reference Manual')
每條命令單獨占一行,而且可能帶有參數跟在命令字后. 命令不需要完全輸入 - 使用第一個匹配輸入前綴的命令. 對於那些以消息列表作為參數的命令,如果沒有給定消息列表,那么使用滿足命令要求的下一條消息. 如果當前消息之后沒有任何消息,那么搜索繼續向前進行.如果根本沒有合適的消息, mail 輸出 ``applicable messages '' 並且終止該命令.
- -
- 打印出接下來的消息. 如果給定一個序號 n 作為參數,那么會轉到 n 'th 前面的消息並打印它.
- ?
- 打印命令概要.
- !
- 執行后面跟着的shell命令 (參看 sh(1) 和 csh(1))
- ( P ) 如同 print 一樣,不過它還會打印出忽略的消息頭字段. 另見 print ignore 以及 retain
- Reply
- ( R ) 回復信件給發送者. 不回復給發送來的郵件中的其它收件人.
- Type
- ( T ) 與 Print 命令一致.
- alias
- ( a ) 不帶參數,打印出所有當前定義的別名.. 帶一個參數,打印該別名. 帶多於一個的參數,則創建一個新的別名或對老的進行修改,
- alternates
- ( alt ) 如果你在數台機器上有賬號. alternates 命令很有用.它可以用來通知 mail 列出的地址實際都是你的. 當你 回復 消息時, mail 就不會發送消息的拷貝到任何列在 alternates 列表中的地址. 如果 alternates 命令未給定參數,那么顯示當前alternate的名字.
- chdir
- ( c ) 如果指定了的話,修改用戶的工作目錄為指定的目錄. 如果沒有指定目錄,那么修改為用戶的登錄目錄.
- copy
- ( co ) copy 命令與 save 一樣,唯一的例外是當你退出時,它不會標明刪除了的消息.
- delete
- ( d ) 以消息列表作為參數,並且標明它們全部被刪除. 刪除了的消息不會保存在 mbox 中, 也不會對大多數其它命令可用.
- dp
- (也作 dt 刪除當前消息並打印下一條消息. 如果沒有下一條消息, mail 輸出 `` at EOF ''
- edit
- ( e ) 讀取一組消息,並把文本編輯器按序指向每條消息. 在從編輯器返回時,消息會再讀回.
- exit
- ( ex 或者 x 不修改用戶的系統郵箱,他的 mbox 文件,或者在 - f 中的編輯文件而立即返回到shell.
- file
- ( fi ) 與 folder 相同.
- folders
- 列出在你的郵件夾目錄中的郵件夾名.
- folder
- ( fo ) folder 命令用來轉到一個新的郵件文件或文件夾. 不帶參數時,它會告知你當前在閱讀的文件. 如果你給定了一個參數,它會在當前文件中寫完你剛作的修改(例如刪除)並讀入新的文件. 對名字有一些特別的約定. #表示前一個文件, %表示你的系統郵箱, %user表示user的系統郵箱, &表示你的 mbox 文件,而 +folder表示在你的folder目錄中的一個文件.
- from
- ( f ) 讀取一組消息並打印出其消息頭.
- headers
- ( h ) 顯示消息頭的當前范圍,這是一個18-消息組. 如果給定了一個 `+' 參數,那么會打印下一個18-消息組,而如果給定了一個 `-' 參數,那么會打印前一個18-消息組.
- help
- 與 ? 同義.
- hold
- ( ho 也作 preserve 讀取一個消息列表,並標記其中的每條消息保存到用戶的系統郵箱中,而非 mbox 中. 這不會覆蓋 delete 命令.
- ignore
- 添加一列消息頭字段到 ignored list 中. 當你打印一條消息時,在ignore list中的消息頭字段不會在你的終端上打印出來. 這條命令對於抑制特定的機器生成的消息頭字段很方便. Type 和 Print 命令可以用來完整地打印一條消息,包括忽略的字段. 如果 ignore 不帶任何參數執行,它會列出當前設置的忽略的字段.
- ( m ) 以登錄名和發送組名作為參數並發送郵件給這些人.
- mbox
- 標明當你退出時,消息列表會發送到你的home目錄下的 mbox 中. 如果你 沒有 設置 hold 選項,這就是消息默認的操作行為.
- next
- ( n ) 類似 + 或 CR 轉到按序的下一條消息並輸出它. 如果帶了參數列表,則輸出下一個匹配的消息.
- preserve
- ( pre ) 與 hold 同義.
- ( p ) 讀取消息列表,並在用戶終端上輸出每條消息.
- quit
- ( q ) 終止會話,保存所有未刪除而且未保存的消息到用戶的登錄目錄下的 mbox 文件中,並保留所有使用 hold 或者 preserve 標記或者從未關聯的消息到他的系統郵箱中,另外從他的系統郵箱中刪除所有其它消息. 如果新的郵件在這次會話中到達,會給出 `` You have new mail '' 消息. 如果在編輯郵箱文件時指定了 - f 標識,那么編輯的文件會重寫. 返回到Shell會受影響,除非編輯文件的重寫失敗,在這種情況下,用戶可以使用 exit 命令退出.
- reply
- ( r ) 讀取消息列表並發送郵件給發送者和指定消息的所有收件人. 默認消息不能夠刪除.
- respond
- 與 reply 同義.
- retain
- 添加消息頭字段列表到 retained list 中. 只有在retain list中的消息頭字段才會在你打印一條消息時顯示在你的終端上. 所有其它消息頭字段都抑制了. Type 和 Print 命令可以用來完整地打印一條消息. 如果 retain 不帶任何參數執行,它會列出保留字段(retained field)的當前設置.
- save
- ( s ) 讀取一個消息列表和一個文件名,並按序添加每條消息到該文件末尾. 文件名應以加引號,后面跟着回應到用戶終端上的行數和字符數.
- set
- ( se ) 如果不帶任何參數,打印所有變量值. 否則,設置選項. 參數為以下格式: option=value (在=前后都沒有空格)或者 option 引號標記可能需要放到賦值語句的任何部分以括起空格或者退格符,也即 `` set indentprefix=-> ''
- saveignore
- Saveignore 用來 save ignore 的內容並 print 和 type 這樣標記的消息頭字段當通過 save 保存消息或者當自動保存到 mbox 中時會過濾掉.
- saveretain
- Saveretain 用來 save retain 中的內容,並 print 和 type 這樣標記的消息頭字段當通過 save 保存消息或者當自動保存到 mbox 中時會過濾掉. Saveretain 覆蓋 saveignore
- shell
- ( sh ) 調用shell的交互式版本.
- size
- 讀取一組消息並打印出每條消息按字符的大小.
- source
- source 命令從一個文件讀取命令.
- top
- 讀取一組消息並打印每條消息的頭幾行. 打印的行數通過變量 toplines 控制,默認為5行.
- type
- ( t ) 與 print 同義.
- unalias
- 讀取一列由 alias 命令定義的名字並丟棄已有的用戶組. 組名將不再有任何作用.
- undelete
- ( u ) 讀取一列消息並標記每條消息為 未 刪除.
- unread
- ( U ) 讀取一列消息並標記每條消息為 尚未 閱讀.
- unset
- 讀取一列選項名並丟棄他們已有的值; 這是 set 的反向操作.
- visual
- ( v ) 讀取一列消息並對每條消息調用顯示的編輯器.
- write
- ( w ) 與 save 相似,不同之處在於 只保存 消息體而 ( 不保存 ) 消息頭). 這對於通過消息系統發送和接收源程序文本的情況有很大的用處.
- xit
- ( x ) 與 exit 同義.
- z
- Mail 表示當消息頭的窗口滿了時,如在 headers 命令中描述的那樣顯示. 你可以使用 z 命令移動 mail 's 通告到下一個窗口. 同樣,你也可以通過使用 z- 移動到前一個窗口.
Tilde/Escapes(代字符/擴展符)
以下是對tilde escapes的歸納,這用於操作消息以執行特殊的功能. Tilde escapes只在行首被承認. 名字 ``tilde escape '' 可能有些用詞不當,因為實際的escape字符可通過選項 escape 設置.
- ~! command
- 執行指定的shell命令,然后返回消息.
- ~b name ...
- 添加給定名字到復制(carbon copy)的收件人列表中,但是不在Cc:行中顯示出來("blind" ca rbon copy).
- ~c name ...
- 添加給定名字到復制(carbon copy)的收件人列表中.
- ~d
- 從你的home目錄中讀取文件 ``dead.letter '' 到消息中.
- ~e
- 對當前收集的消息調用文本編輯器. 在編輯完成之后,你可以繼續在消息中添加文本.
- ~f messages
- 讀取命名的messages到將要發送的消息中. 如果沒有指定messages,那么就讀取當前消息. 當前被忽略(通過 ignore 或者 retain 命令)的消息頭不包括在內.
- ~F messages
- 類似於 ~f, 不過這包括了所有的消息頭.
- ~h
- 通過逐一輸入的方式編輯消息頭字段,並且允許用戶添加文本到消息的末尾或者通過使用當前終端的消除和抹掉字符來修改字段.
- ~m messages
- 讀取命名的messages到將要發送的消息中,以tab或者 indentprefix 的值交錯. 如果沒有指定messages,則讀取當前消息. 當前被忽略(通過 ignore 或者 retain 命令)的消息頭不包括在內.
- ~M messages
- 類似於 ~m, 不過這包括了所有的消息頭.
- ~p
- 打印出當前收集的消息,以消息頭字段開始.
- ~q
- 放棄發送消息,如果設置了 save 則復制消息到你home目錄下的 ``dead.letter '' 中.
- ~r filename
- 讀取指定的file到消息中.
- ~s string
- 使得指定的string成為當前的主題字段.
- ~t name ...
- 添加給定的name到直接的收件人列表中.
- ~v
- 對當前收集的消息調用后備的編輯器(由 VISUAL 選項定義). 通常,備用的編輯器是屏幕編輯器. 你退出編輯器后,你可以繼續在消息的末尾添加文本.
- ~w command
- 使消息通過command的過濾. 如果command沒有輸出或者反常地終止,則會保留消息的原始文本. 命令 fmt(1) 經常用作 command 來重新驗證消息.
- ~: mail-command
- 執行給定的mail command. 但是,不是所有命令都允許的.
- ~ string
- 插入文本string到消息中,前面以單個的~開頭. 如果你已經修改了escape字符,那么你應該重復這個字符以發送它.
Mail Options(郵件選項)
選項通過 set 和 unset 命令控制. 選項可以是二進制的,在這種情況下,只對它們是否設置了有意義;或者是字符串,這種情況下的實際值才有意義. 二進制選項包括以下一些:
- append
- 使得保存在 mbox 中的消息添加到末尾而不是加到前面. 這通常是應該設置的(也許在 /etc/mail.rc 中)
- ask, asksub
- 使得 mail 提示你輸入發送的每條消息的主題. 如果你用一個簡單的換行符應答,則發送無主題的字段.
- askcc
- 提示你輸入附加的復寫(carbon copy)的收件人在每條消息之后. 以換行符回應表示你滿意當前的列表.
- askbcc
- 提示你輸入附加的隱藏的復寫(blind carbon copy)的收件人在每條消息之后. 以換行符回應表示你滿意當前的列表.
- autoprint
- 使得 delete 命令如 dp 一樣. - 這樣,在刪除一條消息之后,下一條消息會自動輸出.
- debug
- 設置二進制選項 debug 與命令行上指定 - d 一樣,這會使得 mail 輸出各種有用的信息來調試 mail
- dot
- 二進制選項 dot 使得 mail 解釋一行只有單一的句點為你發送消息的結束.
- hold
- 該選項用來保存消息在默認的系統郵箱中.
- ignore
- 使得忽略來自終端的中斷信號,並且以@'s響應.
- ignoreeof
- 一個與 dot 相關的選項就是 ignoreeof 它使得 mail 拒絕接受control-d為消息的結束. Ignoreeof 同樣也適用於 mail 命令模式.
- metoo
- 通常,當包括發送者的一組展開時,發送者會在展開中刪除. 設置該選項會使得發送者包括在組中.
- noheader
- 設置選項 noheader 與在命令行中指定 - N 標識一樣.
- nosave
- 正常情況下,當你使用 RUBOUT (erase或者delete) 中止一條消息時, mail 會復制部分信件到你home目錄下的文件 ``dead.letter '' 中. 設置二進制選項 nosave 可以阻止這么做.
- Replyall
- 顛倒 reply 和 Reply 命令的含義.
- quiet
- 當第一次調用時,禁止打印版本.
- searchheaders
- 如果設置了這個選項,那么在格式``/x:y''中的消息列表區分標志會對所有在頭字段``x''中包含子字符串``y''的消息展開.字符串查找是區分大小寫的.
- verbose
- 設置選項 verbose 與在字符行下使用 - v 標識一樣. 當郵件運行在verbose模式時, 實際傳遞的消息會顯示在用戶的終端上.
Option String Values(選項字符串值)
- EDITOR
- 在 edit 命令和 ~e 擴展符中使用的文本編輯器的路徑名. 如果沒有定義,那么使用默認的編輯器.
- LISTER
- 在 folders 命令中使用的目錄瀏覽器的路徑名. 默認為 /bin/ls
- PAGER
- 在 more 命令或者當設置了 crt 變量時使用的程序的路徑名. 如果該選項沒有定義,默認使用 more(1).
- SHELL
- 在 ! 命令和 ~! 擴展符中使用的shell的路徑名. 如果未定義該選項,則使用默認的shell.
- VISUAL
- 在 visual 命令和 ~v 擴展符中使用的文本編輯器的路徑名.
- crt
- 賦值的選項 crt 用作限額以決定一條消息在使用 PAGER 閱讀它之前有多長. 如果 crt 沒有賦值,那么保存在系統中的終端顯示高度用來確定限額(參見 stty(1)).
- escape
- 如果定義了,那么該選項的第一個字符給出擴展符中替換~的字符.
- folder
- 存儲消息的文件夾的目錄名. 如果該名字以`/'開頭, mail 會把它當作絕對路徑名;否則,文件目錄相對於你的home目錄查找.
- MBOX
- mbox 文件的名字. 它可以為一個文件夾名. 默認為在用戶home目錄下的 `` mbox ''
- record
- 如果定義了,指定用來存檔所有外發郵件的文件的路徑名. 如果沒有定義,那么外發郵件將不被保存.
- indentprefix
- 在``~m'' tilde escape中用作交錯消息的字符串,替換一般情況下的tab字符(^I). 如果其中包含了空格或者tab,確信對值加了引號.
- toplines
- 如果定義了,指定使用 top 命令打印的消息的行數;一般情況下,打印前5行.
ENVIRONMENT(環境變量)
Mail 使用了 HOME 和 USER 環境變量.
FILES(相關文件)
- /var/spool/mail/*
- 郵局.
- ~/mbox
- 用戶的老郵件.
- ~/.mailrc
- 給定初始郵件命令的文件.
- /tmp/R*
- 臨時文件.
- /usr/lib/mail.*help
- 幫助文件.
- /etc/mail.rc
- 系統初始化文件.
