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 会将信件添加到每个 recipient 的 mailfile 中。
信件的内容包括一些标题行,后跟一个空白行,然后是消息内容。信件的标题行部分由一个或多个 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: 标题行,表明消息内容的类型(例如文本/纯文本、应用程序/八位字节流等),除非信件仅由标题行组成而没有任何消息内容。如果标题行的下一行以空格开始,则标题行可以在该行中继续。
以下命令行参数将影响发送邮件:
使用 message_type 的值在消息标题中添加一个 Message-Type: 行。
为每个预定的 recipient 在消息标题中添加一个 To: 行。
信件将发送到远程收件人,而无需等待远程传输程序完成操作。
如果发现某信件无法送达,该信件将返回给发件人,并带有指示故障位置和性质的诊断信息。如果 mail 在输入期间中断,消息将保存在文件 dead.letter 中以允许编辑和重新发送。 dead.letter 始终采用附加方式,因此可保留任何以前的内容。初次尝试附加内容到(或创建)dead.letter 的操作在当前目录中进行。如果此操作失败,dead.letter 将附加内容到(或创建在)用户登录目录中。如果第二次尝试也失败,则不能完成任何 dead.letter 处理。
rmail 仅允许发送邮件;uucp(1C) 使用 rmail 作为安全预防措施。生成邮件消息的任何应用程序都应该确保调用 rmail 而非 mail 进行消息传输和/或发送。
如果本地系统已安装基本网络实用程序,则邮件可以发送给远程系统上的收件人。根据本地系统上可用的传输机制,将邮件发送至远程系统上的收件人有很多种方式。两种最普遍的寻址方案是域名式和 UUCP 式。
指定远程收件人的方法是,将 `@' 和域(可能是子域)信息附加到收件人名后面(如 user@sf.att.com)。(应咨询本地系统管理员,以了解有关本地系统上可用的寻址约定的详细信息。)
指定远程收件人的方法是,在收件人名前面添加远程系统名和叹号作为前缀,如 sysa!user。如果 csh(1) 是缺省 shell,则应该使用 sysa\!user。一系列以叹号分隔的系统名可以用来指引信件通过扩展网络(如 sysa!sysb!sysc!user 或 sysa\!sysb\!sysc\!user)。
以下命令行参数将影响邮件的阅读:
测试是否存在邮件。mail 不会输出任何内容。
如果用户有邮件,将返回退出状态 0。否则,将返回退出状态 1。
与 –e 类似,但是仅测试是否存在新邮件。
如果用户有要阅读的新邮件,则返回退出状态 0;如果用户没有邮件,则返回退出状态 1;如果用户有已经阅读的邮件,则返回退出状态 2。
初始显示的是标题窗口,而不是最新消息。显示内容后跟 ? 提示符。
将显示所有消息而不提示您如何进行处理。
将显示所有消息并显示所有标题行,而非显示缺省选择性标题行。
mail 中断后将终止。通常情况下,中断只会导致消息显示终止。
消息将以先入先出顺序显示。
mail 使用 file(如 mbox)而非缺省 mailfile。
mail 将以先入先出顺序显示用户邮件消息,除非另受命令行参数的影响。显示消息的缺省模式是仅显示最直接相关的标题行。这些包括但不限于 UNIX From(发件人)和 >From(>发件人)邮戳、From:(发件人:)、Date:(日期:)、Subject:(主题:)和 Content-Length:(内容-长度:)标题行,以及任何收件人标题行,例如 To:(收件人:)、Cc:(抄送:)、Bcc:(密件抄送:)等。显示标题行后,仅当消息不包含不可显示的字符时,mail 才会显示消息内容(正文)。否则,mail 将发出警告声明,指出消息含有二进制内容,并且不显示该内容。这可以通过使用 p 命令的方式覆盖。
对于每条消息,程序会使用 ? 符号向用户提示,并从标准输入读取一行。以下命令可用于确定消息的处理方式:
输出当前消息的数量。
输出上一条消息。
输出下一条消息。
退回 shell 以执行 command。
输出在 mail 会话期间到达的消息。
删除当前消息并输出下一条消息。
删除消息编号 n。不访问下一条消息。
删除消息并退出 mail。
围绕当前消息显示标题窗口。
围绕消息编号 n 显示标题窗口。
显示用户的 mailfile 中所有消息的标题。
显示计划删除的消息的标题。
将当前消息邮递(并删除)到指定的 persons。
输出消息编号 n。
再次输出当前消息,覆盖任何二进制(不可显示)内容的标识。
覆盖缺省简短模式,再次输出当前消息,显示所有标题行。
将取消删除的邮件放回 mailfile 中并退出 mail。
回复发件人和其他 users,然后删除该消息。
将消息保存在指定的 files(缺省为 mbox)中,然后删除该消息。
取消删除消息编号 n(缺省为上一次读取的消息)。
将消息内容(没有任何标题行)保存在指定的 files(缺省为 mbox)中,然后删除该消息。
将所有邮件不加更改地放回 mailfile 中并退出 mail。
与 –w 选项相同。
输出命令摘要。
当用户登录时,通常会指示有邮件存在(如果有)。此外,使用 mail 时如果有新邮件到达将发送通知。
可以使用 chmod(1) 以两种方式控制 mailfile 的权限,从而更改 mail 的功能。该文件的其他权限可以是读写 (0666)、只读 (0664) 或者不可读写 (0660) 以实现不同级别的保密性。如果更改为非缺省值(模式 0660)的其他设置,将保存该文件以永久保持所需的权限,即使该文件为空也是如此。(管理员可以使用 mailcnfg 的 DEL_EMPTY_MAILFILE 选项覆盖此文件保存操作。)
邮件文件的组 ID 必须是 mail 才允许发送新的消息,并且邮件文件必须对组 mail 是可写的。
以下命令行参数将导致 mail 提供调试信息:
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” 可以是以下一项或多项:
通知发件人消息已成功发送到 recipient 的邮箱。
不向发件人通知成功发送。
不向发件人通知发送失败。
如果邮件发送失败,通知发件人。将失败的消息返回给发件人。
与 /return 相同,但是不会返回原始消息。
缺省值为 /nodelivery/return。如果有矛盾的选项,则识别第一个选项后,将忽略后面有冲突的条目。
发送邮件时支持以下操作数:
域名式地址 (“user@machine”) 或 login(1) 可识别的用户登录名。
有关 mail 和 rmail 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)。
有关影响 mail 执行的环境变量 LC_CTYPE、LC_MESSAGES 和 NLSPATH 的说明,请参见 environ(5)。
确定与日期和时间字符串一起使用的时区。
将返回以下退出值:
用户有邮件,已成功完成。
用户没有邮件或发生初始化错误。
初始化后发生错误。
不可邮递的文本
标识发件人身份并定位 recipient
保存的邮件
包含 mailfile 路径名的变量
调试跟踪文件
锁定邮件目录
保留临时文件的目录,以防止在系统崩溃的情况下丢失数据
user 的传入邮件;即 mailfile
临时文件
有关下列属性的说明,请参见 attributes(5):
|
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 强制输出。