手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

rmail(1)

名称

mail , rmail - 阅读邮件或向用户发送邮件

用法概要

发送邮件

mail [-tw] [-m message_type] recipient...
rmail [-tw] [-m message_type] recipient...

阅读邮件

mail [-ehpPqr] [-f file]

调试

mail [-x debug_level] [other_mail_options] recipient...

描述

recipient 通常是域名式地址 (“user@machine”),或 login(1) 可识别的用户名。当指定多个 recipient 时,mail 会假定只发送一个消息。程序将从标准输入读取内容,直至文件结尾 (Control-d),或者如果从终端设备读取,读取到只有一个句号的一行为止。接收到这些指示符中的任何一个时,mail 会将信件添加到每个 recipientmailfile 中。

信件的内容包括一些标题行,后跟一个空白行,然后是消息内容。信件的标题行部分由一个或多个 UNIX 邮戳组成:

From sender date_and_time [remote from remote_system_name]

后跟一个或多个标准化的消息标题行,形式如下:

keyword-name: [printable text]

其中,keyword-name 由任何可显示的非空白字符组成,冒号 (`:') 除外。MIME-version: 标题行指示消息已按 RFC 2045 所述进行格式化。Content-Length: 标题行始终存在,指示消息内容中的字节数,除非信件仅由标题行组成而没有任何消息内容。还会有一个 Content-Type: 标题行,表明消息内容的类型(例如文本/纯文本、应用程序/八位字节流等),除非信件仅由标题行组成而没有任何消息内容。如果标题行的下一行以空格开始,则标题行可以在该行中继续。

选项

发送邮件

以下命令行参数将影响发送邮件:

–m message_type

使用 message_type 的值在消息标题中添加一个 Message-Type: 行。

–t

为每个预定的 recipient 在消息标题中添加一个 To: 行。

–w

信件将发送到远程收件人,而无需等待远程传输程序完成操作。

如果发现某信件无法送达,该信件将返回给发件人,并带有指示故障位置和性质的诊断信息。如果 mail 在输入期间中断,消息将保存在文件 dead.letter 中以允许编辑和重新发送。 dead.letter 始终采用附加方式,因此可保留任何以前的内容。初次尝试附加内容到(或创建)dead.letter 的操作在当前目录中进行。如果此操作失败,dead.letter 将附加内容到(或创建在)用户登录目录中。如果第二次尝试也失败,则不能完成任何 dead.letter 处理。

rmail 仅允许发送邮件;uucp(1C) 使用 rmail 作为安全预防措施。生成邮件消息的任何应用程序都应该确保调用 rmail 而非 mail 进行消息传输和/或发送。

如果本地系统已安装基本网络实用程序,则邮件可以发送给远程系统上的收件人。根据本地系统上可用的传输机制,将邮件发送至远程系统上的收件人有很多种方式。两种最普遍的寻址方案是域名式和 UUCP 式。

域名式寻址

指定远程收件人的方法是,将 `@' 和域(可能是子域)信息附加到收件人名后面(如 user@sf.att.com)。(应咨询本地系统管理员,以了解有关本地系统上可用的寻址约定的详细信息。)

UUCP 式寻址

指定远程收件人的方法是,在收件人名前面添加远程系统名和叹号作为前缀,如 sysa!user。如果 csh(1) 是缺省 shell,则应该使用 sysa\!user。一系列以叹号分隔的系统名可以用来指引信件通过扩展网络(如 sysa!sysb!sysc!usersysa\!sysb\!sysc\!user)。

阅读邮件

以下命令行参数将影响邮件的阅读:

–e

测试是否存在邮件。mail 不会输出任何内容。

如果用户有邮件,将返回退出状态 0。否则,将返回退出状态 1

–E

–e 类似,但是仅测试是否存在邮件。

如果用户有要阅读的新邮件,则返回退出状态 0;如果用户没有邮件,则返回退出状态 1;如果用户有已经阅读的邮件,则返回退出状态 2

–h

初始显示的是标题窗口,而不是最新消息。显示内容后跟 ? 提示符。

–p

将显示所有消息而不提示您如何进行处理。

–P

将显示所有消息并显示所有标题行,而非显示缺省选择性标题行。

–q

mail 中断后将终止。通常情况下,中断只会导致消息显示终止。

–r

消息将以先入先出顺序显示。

–f file

mail 使用 file(如 mbox)而非缺省 mailfile

mail 将以先入先出顺序显示用户邮件消息,除非另受命令行参数的影响。显示消息的缺省模式是仅显示最直接相关的标题行。这些包括但不限于 UNIX From(发件人)>From(>发件人)邮戳、From:(发件人:)Date:(日期:)Subject:(主题:)Content-Length:(内容-长度:)标题行,以及任何收件人标题行,例如 To:(收件人:)Cc:(抄送:)Bcc:(密件抄送:)等。显示标题行后,仅当消息不包含不可显示的字符时,mail 才会显示消息内容(正文)。否则,mail 将发出警告声明,指出消息含有二进制内容,并且显示该内容。这可以通过使用 p 命令的方式覆盖。

对于每条消息,程序会使用 ? 符号向用户提示,并从标准输入读取一行。以下命令可用于确定消息的处理方式:

#

输出当前消息的数量。

输出上一条消息。

<new-line>、+n

输出下一条消息。

!command

退回 shell 以执行 command

a

输出在 mail 会话期间到达的消息。

ddp

删除当前消息并输出下一条消息。

d n

删除消息编号 n。不访问下一条消息。

dq

删除消息并退出 mail

h

围绕当前消息显示标题窗口。

hn

围绕消息编号 n 显示标题窗口。

h a

显示用户的 mailfile 中所有消息的标题。

h d

显示计划删除的消息的标题。

m [ persons ]

将当前消息邮递(并删除)到指定的 persons

n

输出消息编号 n

p

再次输出当前消息,覆盖任何二进制(不可显示)内容的标识。

P

覆盖缺省简短模式,再次输出当前消息,显示所有标题行。

q 或 Control-d

将取消删除的邮件放回 mailfile 中并退出 mail

r [ users ]

回复发件人和其他 users,然后删除该消息。

s [ files ]

将消息保存在指定的 files(缺省为 mbox)中,然后删除该消息。

u [ n ]

取消删除消息编号 n(缺省为上一次读取的消息)。

w [ files ]

将消息内容(没有任何标题行)保存在指定的 files(缺省为 mbox)中,然后删除该消息。

x

将所有邮件不加更改地放回 mailfile 中并退出 mail

y [ files ]

–w 选项相同。

?

输出命令摘要。

当用户登录时,通常会指示有邮件存在(如果有)。此外,使用 mail 时如果有新邮件到达将发送通知。

可以使用 chmod(1) 以两种方式控制 mailfile 的权限,从而更改 mail 的功能。该文件的其他权限可以是读写 (0666)、只读 (0664) 或者不可读写 (0660) 以实现不同级别的保密性。如果更改为非缺省值(模式 0660)的其他设置,将保存该文件以永久保持所需的权限,即使该文件为空也是如此。(管理员可以使用 mailcnfgDEL_EMPTY_MAILFILE 选项覆盖此文件保存操作。)

邮件文件的组 ID 必须是 mail 才允许发送新的消息,并且邮件文件必须对组 mail 是可写的。

调试

以下命令行参数将导致 mail 提供调试信息:

–x debug_level

mail 可创建包含调试信息的跟踪文件。

–x 选项将导致 mail 创建名为 /tmp/MLDBGprocess_id 的文件,其中包含与 mail 如何处理当前消息相关的调试信息。debug_level 的绝对值将控制调试信息的详细程度。0 表示没有调试。如果 debug_level 大于 0,则仅当 mail 在处理消息时遇到一些问题,才会保留调试文件。如果 debug_level 小于 0,将始终保留调试文件。通过 –x 指定的 debug_level 将覆盖 /etc/mail/mailcnfg 中的任何 DEBUG 的规范。–x 选项所提供的信息很深奥,可能只对系统管理员有用。

发送通知

通过在消息标题中包含以下行之一,邮件可以使用几种形式的通知。

Transport-Options: [ /options ]

Default-Options: [ /options ]

>To: recipient [ /options ]

其中 “/options” 可以是以下一项或多项:

/delivery

通知发件人消息已成功发送到 recipient 的邮箱。

/nodelivery

不向发件人通知成功发送。

/ignore

不向发件人通知发送失败。

/return

如果邮件发送失败,通知发件人。将失败的消息返回给发件人。

/report

/return 相同,但是不会返回原始消息。

缺省值为 /nodelivery/return。如果有矛盾的选项,则识别第一个选项后,将忽略后面有冲突的条目。

操作数

发送邮件时支持以下操作数:

recipient

域名式地址 (“user@machine”) 或 login(1) 可识别的用户登录名。

用法

有关 mailrmail 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)

环境变量

有关影响 mail 执行的环境变量 LC_CTYPE、LC_MESSAGES 和 NLSPATH 的说明,请参见 environ(5)

TZ

确定与日期和时间字符串一起使用的时区。

退出状态

将返回以下退出值:

0

用户有邮件,已成功完成。

1

用户没有邮件或发生初始化错误。

>1

初始化后发生错误。

文件

dead.letter

不可邮递的文本

/etc/passwd

标识发件人身份并定位 recipient

$HOME/mbox

保存的邮件

$MAIL

包含 mailfile 路径名的变量

/tmp/MLDBG*

调试跟踪文件

/var/mail/*.lock

锁定邮件目录

/var/mail/:saved

保留临时文件的目录,以防止在系统崩溃的情况下丢失数据

/var/mail/user

user 的传入邮件;即 mailfile

var/tmp/ma*

临时文件

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

chmod(1)csh(1)login(1)mailx(1)uucp(1C)uuencode(1C)vacation(1)write(1)attributes(5)environ(5)largefile(5)

附注

针对“发送通知”部分中所述的标题行而做出的解释和相应采取的操作,仅当将此版本的 mail 安装在执行邮件发送(或发送失败)的系统上时才适用。早期版本的 mail 可能不支持任何类型的发送通知。

某些情况有时会导致无法删除锁定文件。

中断后,可能不会输出下一条消息。可以通过键入 p 强制输出。