mail、Mail 或 mailx 命令

用途

发送和接收邮件。

语法

要阅读待收邮件,请输入:

邮件 -e

mail -f[-dlHNn] [-F] [FileName]

mail[-dlHNn] [-F] [-u UserID]

发送邮件

邮件[-s 主题] [-c 地址] [-dinNv]地址

描述

mail 命令调用邮件实用程序,使您能够:

  • 读取新来的邮件。
  • 发送邮件。

另外,可以使用可用的选项和子命令来定制您发送和接收邮件的方法。

mail 命令可用于系统邮箱和个人邮箱两类邮箱。

新来的邮件存储在系统邮箱内。 缺省情况下,用户的系统邮箱是位于 /var/spool/mail 目录中的一个文件。 邮箱文件以用户标识命名。 例如,如果用户标识是 jeanne,那么系统邮箱是 /var/spool/mail/jeanne

缺省情况下,当用户读取、删除或保存在其系统邮箱内的所有邮件时,邮箱被删除。 要不删除邮箱,请使用 set 子命令来设置 keep 选项。

除系统邮箱以外,还有一个用户的个人邮箱。 读取消息后,如果未删除消息或将其保存到文件中,那么这些消息会标记为移至个人邮箱。 缺省情况下,个人邮箱为 $HOME/mbox。 例如,如果主目录是 /home/lance,那么个人邮箱为 /home/lance/mbox。 将消息移到一个文件夹内或将其删除之前,消息会一直保留在个人邮箱中。

文件夹提供了有组织地保存消息的方法。 您可以根据需要的数量创建文件夹。 根据文件夹中所包含的消息的主题来命名每个文件夹。

注意:
  • 对一个邮箱运行 mail 命令的多个实例时,结果是不可预测的。
  • 虽然命令名不相同,但 mailMailmailx 命令提供完全相同的功能。

检查邮箱的内容

要处理邮件,请在系统提示符下输入 mail。 Mail 程序对于系统邮箱中的每一封邮件显示一行条目:

Mail [5.2 UCB] [AIX 7.1] Type ? for help.
"/var/spool/mail/lance": 2 messages 2 new
>N 1 karen         Thu Sep 17 14:36 13/359 "Dept Meeting"
 N 2 lance@zeus    Thu Sep 17 15:06 10/350 "Delay"
 N 3 karen         Thu Sep 17 14:36 13/359 "Meeting Cancel"

当前消息由标题摘要中某行开头的> 标记。

每一行条目显示以下字段:

邮箱的项目描述
描述
状态 表示一封邮件的当前类。 状态可以是以下的任何形式:
N
新消息
P
要保存在系统邮箱内的消息。
U
未读消息。 未读消息就是最后一次调用 Mail 程序时在邮箱中列示但是没有检查其内容的消息。
*
被保存或写到一个文件或文件夹的消息。

没有状态的消息表示该消息已经读取但是没有删除或保存。

编号 标识消息的数字顺序。
发件人 标识发送邮件者的地址。
日期 指定接收消息的日期。
大小 定义包含在信件中的行数和字符数(包含标题)。
主题 标识消息的主题。

最后,在邮件列表之后, Mail 程序会显示邮箱提示,缺省情况下是 ?。 以指示它正在等待输入。

标志

标志描述
描述
-c Address(es) 指定要向其发送消息副本的用户列表。 可以指定一个或多个地址。 当指定多个地址时,地址列表必须在引号 ("") 内。
-d 指定与用户邮箱相关联的调试信息
  • uid
  • 用户名
  • 邮件文件夹(系统邮箱)
  • 死信(系统会将未完成的消息保存在 $HOMEdead.letter 文件中)
  • mbox(个人邮箱)
注: 当程序处于调试方式时,不会发送消息。
-e 测试系统邮箱内是否有邮件。 如果存在要读取的邮件,mail 实用程序会退出而不会写入任何内容,并且显示成功返回码。
-f FileName 从指定的文件读取消息。 如果没有指定文件操作数,那么从 mbox 读取消息。 从读取消息退出时,未删除的消息会写到这个文件中。
-f 将消息记录在以收件人命名的文件中。 该名称是在邮件标题中 To: 行的地址的最前部分。 如果设置则覆盖 record 变量。
-h 仅写标题摘要。
-i 导致 tty 中断信号被忽略。
-n 禁止读取 /usr/share/lib/Mail.rc 文件。
-l From User 字段扩展为 256 个字符以处理长用户名。
-N 禁止标题的初始打印。
-s 主题 指定将创建的消息的主题。
-u UserID 指定与执行 mail -f /var/spool/mail/UserID 等同的缩写。 为指定的用户的邮箱启动 Mail 程序。 必须有指定邮箱的访问许可权。
-v 将 Mail 程序置为详细方式。 显示传送到用户终端的详细信息。

环境变量

以下环境变量影响到邮件的执行:

环境变量描述
描述
DEAD 如果中断或发送出错而保存部分消息的文件的路径名。
EDITOR 当使用 edit~e 命令时使用的编辑器的路径名。
HOME 用户主目录的路径名。
利斯特 一个字符串,表示当指定 folders 命令时,用于将文件夹目录的内容写入标准输出的命令。 可作为 sh -c 命令的命令字符串 (command_string) 操作数的可接受的任意字符串都是有效的。 如果此变量为空或没有设置,那么输出命令将为 ls。 取消设置缺省值。
邮箱 (mailbox) mail 命令指定系统邮箱位置。 MAILBOX 值是 mail 命令搜索邮件消息的位置。 如果没有指定 MAILBOX 环境变量,那么系统缺省值为 /var/spool/mail 目录。
邮件配置文件 个人启动文件的路径名。 缺省值为 $HOME/.mailrc
mbox 从已读取的系统邮箱保存消息的个人邮箱的路径名。 exit 命令覆盖此功能,就如同将消息明确地保存到另一个文件中。 缺省值为 $HOME/mbox
pager 字符串表示将输出写到终端的输出过滤器或分页命令。 对作为 sh-c 命令的命令字符串 (command_string) 操作数接受的任意字符串都是有效的。 当标准输出为终端设备时,如果邮件内部变量 crt 被设置到一个小于消息中的行数的值,那么消息输出将通过该命令输送。 如果 PAGER 变量为空或没有设置,那么 paginator 是 pg shell 命令。
SHELL 首选的命令解释器的路径名。
VISUAL 当使用 visual 命令或 ~v 命令跳转 (command-escape) 时调用的实用程序的路径名。 如果不设置这个变量,那么全屏编辑器为 vi

Mail 中的内部变量

Mail 中的内部变量
描述
全部 等同地处理登录名组件匹配的所有网络名。 导致 msglist 消息规范行为相似。 缺省值为 noallnet
追加 (append) 将保存在邮箱中的消息添加到 $HOME/mbox 文件结尾,而不是文件开头。 缺省值为 noappend
询问, asksub 如果没有在命令行中用 -s 选项指定,那么提示输入每条消息主题。 如果不希望创建主题字段,请在提示符下按 Enter 键。 不可能同时设置 asknoasksub 或者 noaskasksub。 缺省值为 asksub
askbcc 提示添加到暗送副本列表的人员的地址。 如果不希望发送暗送副本,请在提示符处按 Enter 键。
askcc 提示应该接收消息副本的人员的地址。 如果不希望发送副本,请在提示符处按 Enter 键。
autoprint 设置 delete 子命令来删除当前消息并显示下一条消息。
crt 指定显示消息时,在使用任何输出过滤器或分页之前消息必须包含的最小行数。
调试 显示调试信息。 在调试方式下不发送消息。 这与在命令行中指定 -d 标志相同。
将行中输入的句点解释为正在发送的消息的结尾。
转义=c 将命令转义字符设置为字符 c。 缺省情况下,命令转义字符为 ~ (波浪号)。
Replyall 和 flipr 反转 RespondrespondReplyreply 命令的含义。 缺省值为 noflipr
folder=目录 存储邮件文件夹的目录名。 定义目录后,当将 FileName 参数与 mailbox 子命令配合使用时,可以使用 + (加号) 表示法来引用该目录。
页眉 (header);头;报头 当以接收方式进入邮件时,启用写标题摘要。 缺省值为 header
挂起 保留已读取但是还没有删除或存储在系统邮箱而非个人邮箱的消息。 缺省值为 nohold
忽略 进入消息时忽略中断。 以 @ (at) 字符回显中断。
ignoreeof 设置 mail 命令拒绝 Ctrl+D 键序列作为消息的结束。 只能通过输入句点来终止输入。 (句点) 在一行上单独或通过 ~. 命令转义。 缺省值为 noignoreeof
indentprefix=字符串 作为前缀添加到由 ~m 命令转义来插入消息的每一行的字符串。 这个变量缺省值为一个制表符。
keep 当系统邮箱、第二邮箱或 mbox 为空时,将其长度截为零而不是将其删除。 缺省值为 nokeep
保存 保留已经用 (s)ave(w)rite 子命令保存在系统邮箱中的消息,而不将其删除。 缺省值为 nokeepsave
metoo 如果发件人的名称是别名的一部分,那么在别名扩展里包含发件人。 缺省情况下,扩展别名会删除发件人。
单跳 当响应那些最初发送到几个收件人的消息时,通常会强制其他接收方地址相对最初作者的机器来响应。 该标志禁用收件人地址修改,提高了网络效率,在网络中所有机器可以直接发送到所有其他的机器(即一个中继范围)。 缺省值为 noonehop
输出文件夹 除非使用绝对路径名,否则会将用于记录发出消息的文件放置在以 folder 变量指定的目录中。 缺省值为 nooutfolder。 查看 recordfolder 变量。
在每一个通过 pipe 命令创建的管道发送的消息后插入换页符。 缺省值为 nopage
提示 = 字符串 设置命令方式提示符为 string。 如果 string 为空或已设置 noprompt,那么不出现提示符。 默认是用 "?" 提示 请指定有效字符串。
quiet 当输入邮件时避免写打开的消息和版本。 缺省值为 noquiet
记录=文件 定义在其中记录所有发出邮件的文件。 缺省值为 norecord
save 启用在中断或传送错误时将消息保存在 dead.letter 文件中。 缺省值为 save
屏幕=number headersz 命令设置在一屏标题中的行数。
sendmail = shell_command 发送消息的备用命令。
发送等待 在返回之前等待后台邮件程序完成。 缺省值为 nosendwait
显示 当消息发件人是调用邮件的用户时,在标题摘要的 To: 行而不是 From: 行中写信息。 缺省值为 noshowto
符号 = 字符串 在给出 ~ a 命令转义时,将 string 插入到消息文本中。 缺省值为 nosign。 字符序列 /t/n 在字符串内被分别识别为制表符和换行符。
Sign= 字符串 当给出 ~ A 命令转义时,将 string 插入到消息文本中。 缺省值为 nosign
toplines= number top 子命令显示的行数。
verbose 在终端上显示实际传送的消息。 这与在命令行中指定 -v 标志相同。

设置环境变量

Bourne shell(bsh 命令)使用并检查以下变量。 可以在 $HOME/.profile 中设置这些变量。

Bourne shell 程序的项目描述
描述
邮件 指定由 Bourne shell 检查用户系统邮箱的位置和名称来确定您是否有邮件。 如果系统邮箱非空,那么 Bourne shell 会发送消息,告诉您有新邮件。 Bourne shell 基于 MAILCHECK 环境变量的值来定期检查系统邮箱。
MAILCHECK 指定 Bourne shell 检查系统邮箱中邮件的时间间隔。
MAILMSG 指定有邮件时由系统发送到控制台 shell 的消息。 缺省消息与以下内容相似:
YOU HAVE NEW MAIL

安全性

RBAC 用户和可信AIX用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 要获取与此命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 要启动 Mail 程序并列示邮箱中的消息,请在命令行提示符下输入以下信息:
    mail
    mail 命令列示在系统邮箱中的每条消息。 然后,邮件系统将显示邮箱提示 (?) 以指示 正在等待输入。 当您看到此提示符时,请输入任何邮箱子命令。

    要查看子命令列表,请输入:

    ?
    本条目列示 Mail 子命令。

  2. 发送消息letter收件人user1@host1并复制到user2@host2user3@host3,类型:
    mail -c "user2@host2 user3@host3" user1@host1<letter
  3. 要查看个人邮箱的内容,请输入:
    mail -f
    该命令显示个人邮箱 $HOME/mbox 中消息的列表。
  4. 要查看指定邮件文件夹的内容,请输入:
    mail -f +dept
    此命令显示dept文件夹。
  5. 要将消息发送到本地系统的用户,请输入:
    mail ron
    完成向用户输入消息时ron,按 Enter 键并按任一键。 (句点)或 Ctrl+D 来退出编辑器并发送消息。 要确定某用户是否在本地系统,请在 /etc/passwd 文件中查看该用户名。

    如果消息成功发送,将不会收到通知。 如果消息无法发送,将发送给您一个错误信息。

  6. 要将一个文件通过邮件发送到本地系统的另一位用户,请输入:
    mail karen < letter1
    此命令发送文件的内容letter1到用户karen在本地系统上。 命令发送文件后,Mail 程序显示命令行提示符。
  7. 要将消息发送到一个远程系统上的用户,请输入:
    mail dale@zeus
    现在,您可以创建消息dale。在此示例中,您将向用户发送消息dale在远程系统上zeus。要向通过网络连接到您系统的另一个系统上的用户发送消息,您必须知道此人的登录标识和另一个系统的名称。

mail、Mail 和 mailx 命令的邮箱子命令

从邮件提示符 ? (问号)下可以输入子命令来操作邮箱中的邮件。 使用带 MessageList 参数的子命令来一次处理多条消息。 使用带 FileName 参数的子命令来处理文件或文件夹。 这些参数在 网络和通信管理中的 Mail 命令和子命令 中讨论。

以下列表描述 Mailbox 子命令及其功能:

邮箱子命令
描述
= 回显当前消息的数目。
# 用于在邮件脚本文件中写入注释的注释字符。
- 显示前一条消息。
? 显示 mailbox 子命令的简短摘要。 与 help 子命令相同。
!命令 执行由 Command 指定的工作站 shell 命令。
alias (a) 不带参数时,将显示所有当前定义的别名及其相应地址。 带一个参数,显示一个别名。 带多个参数,创建一个新别名或更改旧的别名。 与使用 group 子命令相同。
备用 AlternatesList (alt) 如果您在几台机器上有帐户,那么 alternates 子命令就比较有用。 使用此子命令来通知 Mail 程序:列示在 AlternatesList 内的所有地址均指向您。 当您使用 reply 子命令来应答消息时, Mail 程序不会将消息副本发送到 AlternatesList中给出的任何地址。 如果您输入不带参数的 alternates 子命令,那么 Mail 程序显示当前备用名称的集合。
chdir 目录 (cd) 将工作目录切换到所指示的 Directory。 如果不给定目录,那么该命令更改到您的登录目录。
copy [MessageList] 文件 (cco) 将 MessageList 中的每一条消息附加到 File 结尾。 在用户的终端,显示后跟行数和字符数的用引号括起来的文件名。 当您退出时不删除任何消息。
复制 [MessageList] (C) 将指定的消息保存在文件中,该文件的名称取自要保存的消息的作者,且不将消息标记为已保存。 否则,该命令与 Save 子命令相同。
删除 [MessageList] (d) 当退出 Mail 程序时将 MessageList 中的消息标记为已删除。 输入不带消息列表的 d 子命令会删除当前消息。 已删除的消息不保存在 $HOME/mbox 文件中,也不可用于大多数的其他命令。 但是,可以使用 undelete 子命令来恢复在同一邮箱会话中删除的消息。 如果删除消息并更改为其他邮箱或使用 quit 子命令退出邮箱,那么无法重新调用已删除的消息。
丢弃 [ FieldList ] (di) 与 ignore 子命令相同。
注: retain 子命令覆盖 discard 子命令。
dp 删除当前消息并显示下一条消息。 如果没有下一条消息,那么将显示 Mail 程序EOF. 与 dt 子命令相同。
dt 删除当前消息并显示下一条消息。 如果没有下一条消息,那么将显示 Mail 程序EOF. 与 dp 子命令相同。
echo 字符串 在命令行上显示字符串 String
编辑 [MessageList] (e) 使用 MessageList 作为输入文件来启动备用编辑器。 要定义备用编辑器,请使用 set EDITOR= 语句或在 $HOME/.mailrc 文件中放置此条目。 用 MessageList 参数指定的任何消息保留在编辑器会话的过程中所做的更改。
EXIT exx)离开邮箱,不更改邮箱的原始内容而返回到操作系统。 邮箱会恢复为 Mail 程序启动时的状况。 标记为要删除的消息未被删除。 与 xit 子命令相同。
文件 [名称] (fi) 与 folder 子命令相同。
文件夹 [名称] (fo) 切换到新邮件文件或文件夹。 不带此参数时,子命令显示当前邮箱名。 如果包含一个参数,它存储当前邮箱更改(例如已删除的消息)并读取由 Name 参数指定的新邮箱。 与 file 子命令相同。

Name 可识别的一些特殊约定:

#
引用以前的文件。
%
引用系统邮箱 (/var/spool/mail/User ID)。
&
引用个人邮箱 ($HOME/mbox)。
+名称
引用文件夹目录中的文件。
文件夹 列示文件夹目录中的文件夹名。
跟进 [消息] (fo) 响应消息,并将响应记录在文件中,该文件的名称取自消息的作者。 如果设置则覆盖 record 变量。
后续 [MessageList] (F) 响应 msglist 中的第一条消息,并将消息发送到 msglist 中的每一条消息的作者。 主题行取自第一条消息,且响应记录在文件中,该文件的名称取自第一条消息的作者。
来自 [MessageList] (f) 显示 MessageList 中的消息标题。
(g) 与 alias 子命令相同。
[消息] (h) 列示在当前消息组(缺省情况下每条消息组包含 20 条消息;用 set screen= 语句来更改消息组)的标题。 如果邮箱包含的消息比一次能在屏幕上显示的消息要多,那么将仅显示关于第一组消息的信息。 要查看有关其余消息的信息,请将 h 子命令与下一个消息范围中的消息号配合使用,或者使用 z 子命令来更改当前消息组。
help 显示 mailbox 子命令的简短摘要。 与 相同? 子命令后面的 !(感叹号)提示。
保持 [ MessageList ] (ho) 标记 MessageList 中的每一条消息都保存在系统邮箱 (/var/spool/mail/UserID) 中,而不是在 $HOME/mbox 文件中。 不覆盖 delete 子命令。 与 preserve 子命令相同。
mail 子命令的有条件执行
描述
如果 Conditionelseendif mail 子命令的条件的执行结构。 跟在 if 后的子命令在条件 Condition 为 true 时执行。 跟在 else 后的子命令在条件 Condition 不为 true 时执行。 else 不是必要的。 endif 结束此结构并且是必要的。 Condition 可以是接收(接收邮件)或发送(发送邮件)。
 
忽略 [ FieldList ]
FieldList 中的标题字段添加到要忽略的字段列表。 当您使用 typeprint 子命令查看消息时,不会显示忽略的字段。 使用此子命令来禁止机器生成的标题字段。 使用 TypePrint 子命令打印完整的消息,包括忽略的字段。 当使用 typeprint 子命令来显示消息时,不带参数的 ignore 子命令列示不包括的所有标题字段。 与 discard 子命令相同。
 
list
(l) 显示所有邮箱子命令的列表,不解释其功能。
 
邮政 AddressList
(m) 启动邮件编辑器。 使您能够创建消息并将消息发送到在 AddressList 中指定的人。 新建的消息与任何接收消息都不相关。
 
mbox [ MessageList ]
表示当退出 Mail 程序时在 MessageList 中的消息将被发送到个人邮箱 ($HOME/mbox)。 如果您正在查看系统邮箱 (/var/spool/mail/UserID) ,并且未设置 hold 选项,那么此操作是您已读取的消息的缺省操作。
 
更多 [MessageList]
(mo) 使用定义的 pager 程序显示 MessageList 中的消息,以控制在屏幕上显示的内容。 与 page 子命令相同。
 
更多 [MessageList]
(Mo) 类似于 more 子命令,但也显示忽略的头字段。
 
新的 [MessageList]
MessageList 中的每条消息标记为读。 与 NewunreadUnread 子命令相同。
 
新建 [MessageList]
MessageList 中的每条消息标记为读。 与 NewunreadUnread 子命令相同。
 
下一个 [消息]
(n) 将邮箱中的下一条消息标记为当前消息并显示该消息。 带有参数列表时,该命令显示下一条匹配消息。
 
页面 [MessageList]
(pa) 使用定义的 pager 程序显示 MessageList 中的消息,以控制在屏幕上显示的内容。 与 more 子命令相同。
 
页面 [MessageList]
(Pa) 类似于 page 子命令,但也显示忽略的标题字段。
pi 命令
描述
管道 [[msglist]命令] | [[msglist] 命令]] (pi) 通过使用两个自变量 -ccommand调用由 SHELL 指定的命令解释器来通过给定命令来管理消息。 该命令必须作为单独的参数给出。 可以通过加引号实现这一点。 如果不给定参数,那么当前消息将通过由 cmd 变量的值来指定的命令进行输送。 如果设置了page 变量,那么将在每条消息后插入换页符。
preserve (pre) 与 hold 子命令完全相同。
打印 [ MessageList ] (p) 显示指定的消息的文本。 与 type 子命令相同。
打印 [MessageList] (P) 显示带有忽略标题字段的特定消息的文本。 与 type 子命令相同。
退出 (q) 离开邮箱并返回到操作系统。 将所有已读取(不是删除或保存的)的消息存储在个人邮箱 ($HOME/mbox) 中。 将所有已标记为要删除的消息从邮箱中删除并且无法恢复。 所有使用 暂挂保留 选项标记的消息以及尚未查看的消息都将保存在系统邮箱 (/var/spool/mail/用户标识) 中。 当用 -f 标志编辑邮箱文件时,如果给出了 quit 子命令,那么编辑的文件将保存所做的更改。 如果编辑文件不能保存,那么 Mail 程序不会退出。 使用 exit 子命令退出而不保存更改。
应答 [消息] (r) 允许回复消息的发件人和其他所有接收到消息副本的人。 与 Respond 子命令相同。
应答 [消息] (R) 仅允许回复消息的发件人。 与 Respond 子命令相同。
响应 [消息] 允许回复消息发件人和其他所有接收到消息副本的人。 与 reply 子命令相同。
响应 [消息] 仅允许回复消息的发件人。 与 reply 子命令相同。
保留 [FieldList] FieldList 中的标题字段添加到保留字段列表。 当您使用 type 子命令或 print 子命令查看消息时,将显示保留字段。 使用此子命令来定义要显示的标题字段。 使用 TypePrint 子命令打印完整的消息,包括未保留的字段。 如果 retain 子命令不带参数执行,那么它列示保留字段的当前集合。
注: retain 子命令覆盖 discard 子命令。
save [ 文件 ] (s) 将包括标题信息在内的当前消息保存到文件或文件夹。 如果文件已存在,那么将消息附加到该文件。 如果省略 File 字段,那么将消息保存到用户的 mbox 中。
save [MessageList] 文件 (s) 将包括标题信息的 MessageList 保存到文件或文件夹。 如果文件已存在,那么将 MessageList 附加到该文件。 当操作完成时显示文件名和文件大小。 如果将某条消息保存到文件,那么在退出 Mail 程序时,该消息并不会返回到系统邮箱 (/var/spool/mail/UserID),也不会保存到个人邮箱($HOME/mbox)中。
保存 [MessageList] (S) 将指定的消息保存在文件中,该文件的名称取自第一条消息的作者。 文件名是以去掉所有网络地址的作者的名字而得来的。
 set [OptionList | 选项=...] (se) 不带参数时,将显示当前启用的选项。 否则,设置选项为指定的选项。 跟在 set 命令后的参数可以是下列之一:

这些选项以 .mailrc 文件格式列示。

注: 表单 unset name 等同于 noname
shell (sh) 启动 shell 的交互式版本。
大小 [MessageList] 以行数/字符数显示 MessageList 中消息的大小。
文件 (so) 从 File读取并执行 mail 子命令。
顶部 [MessageList] 显示由 MessageList 指定的消息的最上面几行。 显示的行数由选项 toplines 的值确定(缺省为 5)。
触摸 [MessageList] 在系统邮箱 (/var/spool/mail/UserID) 内,退出 Mail 程序时子命令标记 MessageList 中要移动到个人邮箱 ($HOME/mbox) 的消息。 尽管您没有读取消息,也要将其移动。 在个人邮箱中将消息作为未读消息显示。 在 MessageList 中的最后一条消息成为当前消息。
类型 [ MessageList ] (t) 显示特定消息的文本。 与 Print 子命令相同。
类型 [MessageList] (T) 显示带有忽略标题字段的特定消息的文本。 与 Print 子命令相同。
unalias 删除指定的别名。
取消删除 [MessageList] (u) 退出 Mail 程序时,从要被删除的消息列表中删除 MessageList 中的消息。 如果输入不带消息列表的 u 子命令,会再次调用上一条删除的消息。
未读 [ MessageList ] (U) 将 MessageList 中的每条消息标记为读。 与 newNewUnread 子命令相同。
未读 [MessageList] MessageList 中的每条消息标记为读。 与 newNewunread 子命令相同。
未设置 OptionList 禁用 OptionList 中指定的选项的值。 此操作为 set 子命令的逆操作。
注: 表单 unset name 等同于 noname
version (ve) 显示 Mail 程序的版本条幅。
可视 [MessageList] (v) 使用 MessageList 作为输入字段来启动可视编辑器。 (此编辑器可以用 set VISUAL= 语句定义。) 将在编辑器会话的过程中所做的任何更改保存回 MessageList 中的消息。
write [MessageList] 文件 (w) 将没有标题信息的消息保存到一个文件或文件夹。 当操作完成时显示文件名和文件大小。 在文件中不包括消息标题。
退出 (x) 与 exit 子命令相同。
z [+ | - ] 更改当前消息组(一组有 20 条消息)并显示该组中的消息标题。 如果+或者不提供参数,那么将显示下一个组中的标题。 如果指定 - 参数,那么会显示前一组中的标题。

mail 和 Mail 命令的邮件编辑器子命令

缺省情况下,Mail 程序将以 ~(波浪号)字符开始的行作为子命令。 以下列表描述了在邮件编辑器中时所用的子命令。 只有在一个新行的开始输入子命令,编辑器才会识别这些子命令。

邮件编辑器子命令
描述
~? 显示 mail 子命令的摘要。
~!命令 使用以下两个参数调用 SHELL 指定的命令解释器:-ccommand。 命令的标准输出将插入到消息中。
~ a sign 变量的值插入到消息文本,后面跟随一个换行符。 与 ~i 符号相同。
~ A sign 变量的值插入到消息文本,后面跟随一个换行符。 与 ~i 符号相同。
~ b AddressList AddressList 中的名称添加到接收消息的暗送副本的地址列表中。 ~ b 子命令只能用于添加,而不是更改或删除该子命令的内容。 Bcc: List
~ c AddressList AddressList 中的名称添加到接收消息副本的人员列表。 ~ c 子命令只能用于添加 (而不是更改或删除)Cc: List
~ d dead.letter 文件的内容附加到消息结尾。
~ e 使用消息文本作为输入文件来启动备用编辑器。 (此编辑器可以用 Bourne shell 中的 set EDITOR= 语句定义。) 退出此编辑器时,返回到邮件编辑器,在此处可以添加文本或通过退出 Mail 程序来发送消息。
~ f [MessageList] 包含当前消息的 MessageList 以转发消息到另一个用户。 本子命令读取 MessageList 中的任何消息并将其附加到当前消息结尾,但不缩进附加消息。 此子命令还用于为其页边距过宽而无法与 ~ m 子命令嵌入的引用追加消息。 仅当您使用 mailreply从邮箱提示符输入邮件编辑器时,此子命令才有效。 或 Reply 子命令。
~ F [MessageList] 基本等同于 ~m,区别在于消息中会包括所有的标题,而无论以前是否运行过 discardignoreretain 命令。
~ h 允许添加或更改在所有标题字段中的信息。 系统显示四个标题字段中的每一个,每次显示一个。 可以查看每个字段的内容,并且可以在字段中删除或者添加信息。 按 Enter 键来保存任何对该字段的更改并显示下一个字段及其内容。
~ i 字符串 将跟有换行符的指定的变量的值插入到下一条消息文本中。 如果字符串取消设置或为空,那么将不更改消息。
~ m [MessageList] 包括当前消息中的 MessageList,以作参考。 子命令读取 MessageList 中的任何消息并将其附加到当前消息结尾。 包含的消息从消息的常规左页边距缩进一个制表符。 仅当您使用 mailreply从邮箱提示符输入邮件编辑器时,此子命令才有效。 或 Reply 子命令。
~ M [MessageList] 基本等同于 ~m,区别在于消息中会包括所有的标题,而无论以前是否运行过 discardignoreretain 命令。
~ p 显示完整的消息,包含标题信息。
~q 退出编辑器,而不发送消息。 除非设置了 nosave 选项,否则会将消息保存在主目录的 dead.letter 文件中。 dead.letter 文件的以前内容由部分完成的消息替换。
注: 您还可以使用两次 "中断" (Ctrl + C) 键序列来退出编辑器。
~ r 文件 将文件的内容读取到当前消息中。
~ s 字符串 将主题字段更改为 String 中指定的短语。 不能用本子命令来附加到主体字段。
~ t AddressList AddressList 中的地址添加到To:消息的字段。 ~ t 子命令只能用于添加,而不是更改或删除To: List
~v 使用消息文本作为输入文件来启动可视编辑器。 此编辑器可以用 Bourne shell 中的 set VISUAL= 语句定义。 退出此编辑器时,返回到邮件编辑器,在此处可以将文本添加到消息或通过退出 Mail 程序来发送消息。
~ w 文件 将消息写到指定的文件。
~ x ~q 基本一样,退出编辑器,区别在于不将消息保存到 dead.letter 文件中。
~: 子命令 执行由 Subcommand 指定的子命令并返回到邮件编辑器。
~ | 命令 通过命令 Command 作为过滤器来传送消息。 如果 Command 不给定输出或异常终止,那么它保留消息的原始文本。 否则,Command 的输出替换当前消息。 fmt 命令通常用作 命令 来格式化消息。
~< 文件 将文件的内容读取到当前消息中。
~<!命令 允许运行 shell 命令。 shell 会使用 -c 标志运行指定的 Command。 将 Command 的标准输出插入到消息。
~~ 允许您使用~消息中的 (波浪号) 字符,而不将其解释为命令前缀。 该~~键序列仅生成一个~正在消息中发送的字符。

文件

文件
描述
$HOME/.mailrc 包含 mail 子命令来对特定的用户定制 Mail 程序。
$HOME/mbox 包含个人邮箱。
/usr/share/lib/Mail.rc 包含对于在系统上的所有用户用 mail 子命令来更改 Mail 程序的文件。
/var/spool/mail/* 包含所有用户的系统邮箱。
/usr/bin/mail 包含 mail 命令。
/usr/bin/Mail 包含 mail 命令。
/usr/bin/mailx 包含 mailx 命令。