MAIL(1)

NAME(名稱)
mail - 發送和接收郵件

SYNOPSIS(總覽)
mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr... mail [-iInNv] -f [name] mail [-iInNv] [-u user]

INTRODUCTION(介紹)
Mail 是一個智能化的郵件處理系統,它具有 ed(1) 的命令語法回憶功能,只是用消息替換了行罷了.

-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’) 打印. 你可以使用命令 ‘+’ 和 ‘-’ 如在 ed(1) 的各行間移動一樣前後移動消息,或者移動到一個簡單的序號.

  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))

Print
    (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 不帶任何參數執行,它會列出當前設置的忽略的字段.

mail
    (m) 以登錄名和發送組名作爲參數併發送郵件給這些人.

mbox
    標明當你退出時,消息列表會發送到你的home目錄下的 mbox 中. 如果你 沒有 設置 hold 選項,這就是消息默認的操作行爲.

next
    (n) 類似 + 或 CR) 轉到按序的下一條消息並輸出它. 如果帶了參數列表,則輸出下一個匹配的消息.

preserve
    (pre) 與 hold 同義.

print
    (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=-&gt;”

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命令,然後返回消息.

~bname ...
    添加給定名字到複製(carbon copy)的收件人列表中,但是不在Cc:行中顯示出來("blind" ca rbon copy).

~cname ...
    添加給定名字到複製(carbon copy)的收件人列表中.

~d  從你的home目錄中讀取文件 “dead.letter” 到消息中.

~e  對當前收集的消息調用文本編輯器. 在編輯完成之後,你可以繼續在消息中添加文本.

~fmessages
    讀取命名的messages到將要發送的消息中. 如果沒有指定messages,那麼就讀取當前消息. 當前被忽略(通過 ignore 或者 retain 命令)的消息頭不包括在內.

~Fmessages
    類似於 ~f, 不過這包括了所有的消息頭.

~h  通過逐一輸入的方式編輯消息頭字段,並且允許用戶添加文本到消息的末尾或者通過使用當前 終端的消除和抹掉字符來修改字段.

~mmessages
    讀取命名的messages到將要發送的消息中,以tab或者 indentprefix 的值交錯. 如果沒有指定messages,則讀取當前消息. 當前被忽略(通過 ignore 或者 retain 命令)的消息頭不包括在內.

~Mmessages
    類似於 ~m, 不過這包括了所有的消息頭.

~p  打印出當前收集的消息,以消息頭字段開始.

~q  放棄發送消息,如果設置了 save, 則複製消息到你home目錄下的 “dead.letter” 中.

~rfilename
    讀取指定的file到消息中.

~sstring
    使得指定的string成爲當前的主題字段.

~tname ...
    添加給定的name到直接的收件人列表中.

~v  對當前收集的消息調用後備的編輯器(由 VISUAL 選項定義). 通常,備用的編輯器是屏幕編輯器. 你退出編輯器後,你可以繼續在消息的末尾添加文本.

~wcommand
    使消息通過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
    系統初始化文件.

SEE ALSO(另見)
fmt(1), newaliases(1), vacation(1), aliases(5), mailaddr(7), sendmail(8) 和 The Mail Reference Manual ..

HISTORY(歷史)
mail 命令出現在 AT&T UNIX 中. 該man頁源自 原作者爲Kurt Shoens.

BUGS
有一些標識沒有列在文檔中. 大多數對一般用戶都是沒有用處的.

[中文版維護人]
riser <boomer@ccidnet.com>

[中文版最新更新]
2001/08/08

《中國linux論壇man手冊頁翻譯計劃》:
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh