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(丟棄郵件).

在檢查了訊息之後,你可以 deleted’) 這條訊息或者 replyr’) 它. 刪除會導致 mail 程式遺忘該條訊息. 這並非不能撤銷;可以透過給定其序號來 undeletedu’) 該條訊息,或者 透過指定 exitx’) 命令來終止 mail 的會話. 不過,刪除了的訊息就會永遠消失不再出現.

Specifying messages(指定訊息)

命令如 printdelete 可以給定一組訊息的序號作為引數來一次性對這組訊息進行操作. 所以, “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(終止郵件處理會話).

你可以使用 quitq’) 命令來終止 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中的訊息頭欄位不會在你的終端上打印出來. 這條命令對於抑制特定的機器生成的訊息頭欄位很方便. TypePrint 命令可以用來完整地列印一條訊息,包括忽略的欄位. 如果 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中的訊息頭欄位才會在你列印一條訊息時顯示在你的終端上. 所有其它訊息頭欄位都抑制了. TypePrint 命令可以用來完整地列印一條訊息. 如果 retain 不帶任何引數執行,它會列出保留欄位(retained field)的當前設定.
save
(s) 讀取一個訊息列表和一個檔名,並按序新增每條訊息到該檔案末尾. 檔名應以加引號,後面跟著回應到使用者終端上的行數和字元數.
set
(se) 如果不帶任何引數,列印所有變數值. 否則,設定選項. 引數為以下格式: option=value (在=前後都沒有空格)或者 option. 引號標記可能需要放到賦值語句的任何部分以括起空格或者退格符,也即 “set indentprefix="->"
saveignore
Saveignore 用來 save ignore 的內容並 printtype. 這樣標記的訊息頭欄位當透過 save 儲存訊息或者當自動儲存到 mbox 中時會過濾掉.
saveretain
Saveretain 用來 save retain 中的內容,並 printtype. 這樣標記的訊息頭欄位當透過 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(郵件選項)

選項透過 setunset 命令控制. 選項可以是二進位制的,在這種情況下,只對它們是否設定了有意義;或者是字串,這種情況下 的實際值才有意義. 二進位制選項包括以下一些:
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
顛倒 replyReply 命令的含義.
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 使用了 HOMEUSER 環境變數.

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 命令出現在 Version 6 AT&T UNIX 中. 該man頁源自 The Mail Reference Manual 原作者為Kurt Shoens.

BUGS

有一些標識沒有列在文件中. 大多數對一般使用者都是沒有用處的.

[中文版維護人]

riser <[email protected]>

[中文版最新更新]

2001/08/08

《中國linux論壇man手冊頁翻譯計劃》:

http://cmpp.linuxforum.net

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

Recommended readings

Pages related to mail you should read also: