Amiga Unix — 68040 · 68060

Manual pages › General commands (1)

mailx(1)

interactive message processing system

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME · SYNOPSIS · DESCRIPTION · FILES · SEE ALSO · NOTES

NAME

mailx - interactive message processing system

SYNOPSIS

mailx [ options ] [ name...  ]

DESCRIPTION

The command mailx provides a comfortable, flexible environment for sending and receiving messages electronically. When reading mail, mailx provides commands to facilitate saving, deleting, and responding to messages. When sending mail, mailx allows editing, reviewing and other modification of the message as it is entered.

Many of the remote features of mailx work only if the Basic Networking Utilities are installed on your system.

Incoming mail is stored in a standard file for each user, called the mailbox for that user. When mailx is called to read messages, the mailbox is the default place to find them. As messages are read, they are marked to be moved to a secondary file for storage, unless specific action is taken, so that the messages need not be seen again. This secondary file is called the mbox and is normally located in the user's HOME directory [see MBOX (ENVIRONMENT VARIABLES) for a description of this file]. Messages can be saved in other secondary files named by the user. Messages remain in a secondary file until forcibly removed.

The user can access a secondary file by using the -f option of the mailx command. Messages in the secondary file can then be read or otherwise processed using the same COMMANDS as in the primary mailbox. This gives rise within these pages to the notion of a current mailbox.

On the command line, options start with a dash (-) and any other arguments are taken to be destinations (recipients). If no recipients are specified, mailx attempts to read messages from the mailbox. Command-line options are:

-d            Turn on debugging output.

-e            Test for presence of mail.  mailx  prints
              nothing   and  exits  with  a  successful
              return code if there is mail to read.

-f [filename] Read messages from  filename  instead  of
              mailbox.   If  no  filename is specified,
              the mbox is used.

-F Record the message in a file named after the first recipient. Overrides the record variable, if set (see ENVIRONMENT VARIABLES).

-h number The number of network ``hops'' made so far. This is provided for network software to avoid infinite delivery loops. This option and its argument is passed to the delivery program.

-H Print header summary only.

-i Ignore interrupts. See also ignore (ENVIRONMENT VARIABLES).

-I Include the newsgroup and article-id header lines when printing mail messages. This option requires the -f option to be specified.

-n Do not initialize from the system default mailx.rc file.

-N Do not print initial header summary.

-r address Use address as the return address when invoking the delivery program. All tilde commands are disabled. This option and its argument is passed to the delivery program.

-s subject Set the Subject header field to subject.

-T file Message-id and article-id header lines are recorded in file after the message is read. This option will also set the -I option.

-u user Read user's mailbox. This is only effective if user's mailbox is not read protected.

-U Convert uucp style addresses to internet standards. Overrides the conv environment variable.

-V Print the mailx version number and exit.

When reading mail, mailx is in command mode. A header summary of the first several messages is displayed, followed by a prompt indicating mailx can accept regular commands (see COMMANDS below). When sending mail, mailx is in input mode. If no subject is specified on the command line, a prompt for the subject is printed. (A subject longer than 1024 characters causes mailx to print the message mail: ERROR signal 10; the mail will not be delivered.) As the message is typed, mailx reads the message and store it in a temporary file. Commands may be entered by beginning a line with the tilde (~) escape character followed by a single command letter and optional arguments. See TILDE ESCAPES for a summary of these commands.

At any time, the behavior of mailx is governed by a set of environment variables. These are flags and valued parameters which are set and cleared via the set and unset commands. See ENVIRONMENT VARIABLES below for a summary of these parameters.

Recipients listed on the command line may be of three types:
login  names,  shell commands, or alias groups.  Login names
may be any network address, including mixed network address-
ing.   If  mail  is found to be undeliverable, an attempt is
made to return it to the sender's mailbox.  If the recipient
name  begins  with a pipe symbol ( | ), the rest of the name
is taken to be a shell command to pipe the message  through.
This  provides  an automatic interface with any program that
reads the standard input, such as lp(1) for recording outgo-
ing  mail  on paper.  Alias groups are set by the alias com-
mand (see COMMANDS below) and are lists of recipients of any
type.

Regular commands are of the form

     [ command ] [ msglist ] [ arguments ]

If no command is specified in command mode, print is assumed. In input mode, commands are recognized by the escape character, and lines not treated as commands are taken as input for the message.

Each message is assigned a sequential number, and there is at any time the notion of a current message, marked by a right angle bracket (>) in the header summary. Many commands take an optional list of messages (msglist) to operate on. The default for msglist is the current message. A msglist is a list of message identifiers separated by spaces, which may include:

n       Message number n.

.       The current message.

^       The first undeleted message.

$       The last message.

*       All messages.

n-m     An inclusive range of message numbers.

user    All messages from user.

/string All messages with string in  the  subject  line
        (case ignored).

:c      All messages of type c, where c is one of:

        d    deleted messages

        n    new messages

        o    old messages

        r    read messages

        u    unread messages
        Note that the context of the command determines
        whether  this  type  of  message  specification
        makes sense.

Other arguments are usually arbitrary strings whose usage depends on the command involved. File names, where expected, are expanded via the normal shell conventions [see sh(1)]. Special characters are recognized by certain commands and are documented with the commands below.

At start-up time, mailx tries to execute commands from the optional system-wide file (/etc/mail/mailx.rc) to initialize certain parameters, then from a private start-up file ($HOME/.mailrc) for personalized variables. With the exceptions noted below, regular commands are legal inside startup files. The most common use of a start-up file is to set up initial display options and alias lists. The following commands are not legal in the start-up file: !, Copy, edit, followup, Followup, hold, mail, preserve, reply, Reply, shell, and visual. An error in the start-up file causes the remaining lines in the file to be ignored. The .mailrc file is optional, and must be constructed locally.

COMMANDS

The following is a complete list of mailx commands:

!shell-command

     Escape to the  shell.   See  SHELL  (ENVIRONMENT  VARI-
     ABLES).

# comment

Null command (comment). This may be useful in .mailrc files.

=    Print the current message number.

?    Prints a summary of commands.

alias alias name ...
group alias name ...
     Declare an alias for the given names.   The  names  are
     substituted  when alias is used as a recipient.  Useful
     in the .mailrc file.

alternates name ...

Declares a list of alternate names for your login. When responding to a message, these names are removed from the list of recipients for the response. With no arguments, alternates prints the current list of alternate names. See also allnet (ENVIRONMENT VARIABLES).

cd [directory]
chdir [directory]
     Change directory.  If directory is not specified, $HOME
     is used.

copy [filename]
copy [msglist] filename
     Copy messages to the file without marking the  messages
     as saved.  Otherwise equivalent to the save command.

Copy [msglist]

Save the specified messages in a file whose name is derived from the author of the message to be saved, without marking the messages as saved. Otherwise equivalent to the Save command.

delete [msglist]

Delete messages from the mailbox. If autoprint is set, the next message after the last one deleted is printed (see ENVIRONMENT VARIABLES).

discard [header-field ...]
ignore [header-field ...]
     Suppresses printing of the specified header fields when
     displaying  messages on the screen.  Examples of header
     fields to ignore are status and  cc.   The  fields  are
     included when the message is saved.  The Print and Type
     commands override this command.  If no header is speci-
     fied,  the  current list of header fields being ignored
     will be printed.  See also the undiscard  and  unignore
     commands.

dp [msglist]

dt [msglist]

Delete the specified messages from the mailbox and print the next message after the last one deleted. Roughly equivalent to a delete command followed by a print command.

echo string ...

Echo the given strings [like echo(1)].

edit [msglist]

Edit the given messages. The messages are placed in a temporary file and the EDITOR variable is used to get the name of the editor (see ENVIRONMENT VARIABLES). Default editor is ed(1).

exit
xit  Exit from mailx, without changing the mailbox.  No mes-
     sages are saved in the mbox (see also quit).

file [filename]
folder [filename]
     Quit from the current file of messages and read in  the
     specified  file.  Several special characters are recog-
     nized when used as file names, with the following  sub-
     stitutions:
          %         the current mailbox.
          %user     the mailbox for user.
          #         the previous file.
          &         the current mbox.
     Default file is the current mailbox.

folders

Print the names of the files in the directory set by the folder variable (see ENVIRONMENT VARIABLES).

followup [message]

Respond to a message, recording the response in a file whose name is derived from the author of the message. Overrides the record variable, if set. See also the Followup, Save, and Copy commands and outfolder (ENVIRONMENT VARIABLES).

Followup [msglist]

Respond to the first message in the msglist, sending the message to the author of each message in the msglist. The subject line is taken from the first message and the response is recorded in a file whose name is derived from the author of the first message. See also the followup, Save, and Copy commands and outfolder (ENVIRONMENT VARIABLES).

from [msglist]

Prints the header summary for the specified messages.

group alias name ...
alias alias name ...
     Declare an alias for the given names.   The  names  are
     substituted  when alias is used as a recipient.  Useful
     in the .mailrc file.

headers [message]

Prints the page of headers which includes the message specified. The screen variable sets the number of headers per page (see ENVIRONMENT VARIABLES). See also the z command.

help Prints a summary of commands.

hold [msglist]
preserve [msglist]
     Holds the specified messages in the mailbox.

if s | r
mail-commands
else
mail-commands
endif
     Conditional  execution,  where  s  executes   following
     mail-commands,  up  to an else or endif, if the program
     is in send mode, and r causes the mail-commands  to  be
     executed  only  in receive mode.  Useful in the .mailrc
     file.

ignore [header-field ...]
discard [header-field ...]
     Suppresses printing of the specified header fields when
     displaying  messages on the screen.  Examples of header
     fields to ignore are status and  cc.   All  fields  are
     included when the message is saved.  The Print and Type
     commands override this command.  If no header is speci-
     fied,  the  current list of header fields being ignored
     will be printed.  See also the undiscard  and  unignore
     commands.

list Prints  all  commands  available.   No  explanation  is
     given.

mail name ...

Mail a message to the specified users.

Mail name

Mail a message to the specified user and record a copy of it in a file named after that user.

mbox [msglist]

Arrange for the given messages to end up in the standard mbox save file when mailx terminates normally. See MBOX (ENVIRONMENT VARIABLES) for a description of this file. See also the exit and quit commands.

next [message]

Go to next message matching message. A msglist may be specified, but in this case the first valid message in the list is the only one used. This is useful for jumping to the next message from a specific user, since the name would be taken as a command in the absence of a real command. See the discussion of msglists above for a description of possible message specifications.

pipe [msglist] [shell-command]
| [msglist] [shell-command]
     Pipe the message through the given shell-command.   The
     message is treated as if it were read.  If no arguments
     are given, the current message  is  piped  through  the
     command specified by the value of the cmd variable.  If
     the page variable is set,  a  form  feed  character  is
     inserted  after  each  message  (see  ENVIRONMENT VARI-
     ABLES).

preserve [msglist]
hold [msglist]
     Preserve the specified messages in the mailbox.

Print [msglist]
Type [msglist]
     Print the specified messages on the  screen,  including
     all  header fields.  Overrides suppression of fields by
     the ignore command.

print [msglist]
type [msglist]
     Print the specified messages.  If crt is set, the  mes-
     sages  longer than the number of lines specified by the
     crt variable are paged through the command specified by
     the  PAGER variable.  The default command is pg(1) (see
     ENVIRONMENT VARIABLES).

quit Exit from mailx, storing messages  that  were  read  in
     mbox and unread messages in the mailbox.  Messages that
     have been explicitly saved in a file are deleted.

Reply [msglist]
Respond [msglist]
     Send a response to the author of each  message  in  the
     msglist.  The subject line is taken from the first mes-
     sage.  If record is set to a file name, the response is
     saved  at  the  end of that file (see ENVIRONMENT VARI-
     ABLES).

reply [message]
respond [message]
     Reply to the specified  message,  including  all  other
     recipients  of the message.  If record is set to a file
     name, the response is saved at the  end  of  that  file
     (see ENVIRONMENT VARIABLES).

Save [msglist]

Save the specified messages in a file whose name is derived from the author of the first message. The name of the file is taken to be the author's name with all network addressing stripped off. See also the Copy, followup, and Followup commands and outfolder (ENVIRONMENT VARIABLES).

save [filename]
save [msglist] filename
     Save the specified messages in  the  given  file.   The
     file  is  created  if  it  does  not  exist.   The file
     defaults to mbox.  The  message  is  deleted  from  the
     mailbox  when  mailx  terminates unless keepsave is set
     (see also ENVIRONMENT VARIABLES and the exit  and  quit
     commands).

set
set name
set name=string
set name=number
     Define a variable called name.   The  variable  may  be
     given  a null, string, or numeric value.  Set by itself
     prints  all  defined  variables   and   their   values.
     See  ENVIRONMENT VARIABLES for detailed descriptions of
     the mailx variables.

shell

     Invoke an interactive shell [see also  SHELL  (ENVIRON-
     MENT VARIABLES)].

size [msglist]

Print the size in characters of the specified messages.

source filename

Read commands from the given file and return to command mode.

top [msglist]

Print the top few lines of the specified messages. If the toplines variable is set, it is taken as the number of lines to print (see ENVIRONMENT VARIABLES). The default is 5.

touch [msglist]

Touch the specified messages. If any message in msglist is not specifically saved in a file, it is placed in the mbox, or the file specified in the MBOX environment variable, upon normal termination. See exit and quit.

Type [msglist]
Print [msglist]
     Print the specified messages on the  screen,  including
     all  header fields.  Overrides suppression of fields by
     the ignore command.

type [msglist]
print [msglist]
     Print the specified messages.  If crt is set, the  mes-
     sages  longer than the number of lines specified by the
     crt variable are paged through the command specified by
     the  PAGER variable.  The default command is pg(1) (see
     ENVIRONMENT VARIABLES).

undelete [msglist]

Restore the specified deleted messages. Will only restore messages deleted in the current mail session. If autoprint is set, the last message of those restored is printed (see ENVIRONMENT VARIABLES).

undiscard header-field ...
unignore header-field ...
     Remove the specified header fields from the list  being
     ignored.

unset name ...

Causes the specified variables to be erased. If the variable was imported from the execution environment (i.e., a shell variable) then it cannot be erased.

version

Prints the current version.

visual [msglist]

Edit the given messages with a screen editor. The messages are placed in a temporary file and the VISUAL variable is used to get the name of the editor (see ENVIRONMENT VARIABLES).

write [msglist] filename

Write the given messages on the specified file, minus the header and trailing blank line. Otherwise equivalent to the save command.

xit
exit Exit from mailx, without changing the mailbox.  No mes-
     sages are saved in the mbox (see also quit).

z[+ | -]

Scroll the header display forward or backward one screen-full. The number of headers displayed is set by the screen variable (see ENVIRONMENT VARIABLES).

TILDE ESCAPES

The following commands may be entered only from input mode, by beginning a line with the tilde escape character (~). See escape (ENVIRONMENT VARIABLES) for changing this special character.

~! shell-command

Escape to the shell.

~.   Simulate end of file (terminate message input).

~: mail-command
~_  mail-command
     Perform the command-level  request.   Valid  only  when
     sending a message while reading mail.

~? Print a summary of tilde escapes.

~A Insert the autograph string Sign into the message (see ENVIRONMENT VARIABLES).

~a Insert the autograph string sign into the message (see ENVIRONMENT VARIABLES).

~b names ...

Add the names to the blind carbon copy (Bcc) list.

~c names ...

Add the names to the carbon copy (Cc) list.

~d Read in the dead.letter file. See DEAD (ENVIRONMENT VARIABLES) for a description of this file.

~e   Invoke the editor on the  partial  message.   See  also

     EDITOR (ENVIRONMENT VARIABLES).

~f [msglist]

Forward the specified messages. The messages are inserted into the message without alteration.

~h Prompt for Subject line and To, Cc, and Bcc lists. If the field is displayed with an initial value, it may be edited as if you had just typed it.

~i string

Insert the value of the named variable into the text of the message. For example, ~A is equivalent to Environment variables set and exported in the shell are also accessible by ~i.

~m [msglist]

Insert the specified messages into the letter, shifting the new text to the right one tab stop. Valid only when sending a message while reading mail.

~p Print the message being entered.

~q Quit from input mode by simulating an interrupt. If the body of the message is not null, the partial message is saved in dead.letter. See DEAD (ENVIRONMENT VARIABLES) for a description of this file.

~r filename
~<  filename
~<  !shell-command
     Read in the specified file.   If  the  argument  begins
     with  an  exclamation point (!), the rest of the string
     is taken as an arbitrary shell command and is executed,
     with the standard output inserted into the message.

~s string ...

Set the subject line to string.

~t names ...

Add the given names to the To list.

~v Invoke a preferred screen editor on the partial message. See also VISUAL (ENVIRONMENT VARIABLES).

~w filename

Write the message into the given file, without the header.

~x Exit as with ~q except the message is not saved in dead.letter.

~| shell-command

Pipe the body of the message through the given shell-command. If the shell-command returns a successful exit status, the output of the command replaces the message.

ENVIRONMENT VARIABLES

The following are environment variables taken from the execution environment and are not alterable within mailx.

HOME=directory

The user's base of operations.

MAILRC=filename

The name of the start-up file. Default is $HOME/.mailrc.

The following variables are internal mailx variables. They may be imported from the execution environment or set via the set command at any time. The unset command may be used to erase variables.

allnet

All network names whose last component (login name) match are treated as identical. This causes the msglist message specifications to behave similarly. Default is noallnet. See also the alternates command and the metoo variable.

append

Upon termination, append messages to the end of the mbox file instead of prepending them. Default is noappend.

askcc

Prompt for the Cc list after the Subject is entered. Default is noaskcc.

askbcc

Prompt for the Bcc list after the Subject is entered. Default is noaskbcc.

asksub

Prompt for subject if it is not specified on the command line with the -s option. Enabled by default.

autoprint

Enable automatic printing of messages after delete and undelete commands. Default is noautoprint.

bang Enable the special-casing of exclamation points (!)  in
     shell  escape  command  lines  as in vi(1).  Default is
     nobang.

cmd=shell-command

Set the default command for the pipe command. No default value.

conv=conversion

Convert uucp addresses to the specified address style. The only valid conversion now is internet, which uses domain-style addressing. Conversion is disabled by default. See also the -U command-line option.

crt=number

Pipe messages having more than number lines through the command specified by the value of the PAGER variable [pg(1) by default]. Disabled by default.

DEAD=filename

The name of the file in which to save partial letters in case of untimely interrupt. Default is $HOME/dead.letter.

debug

Enable verbose diagnostics for debugging. Messages are not delivered. Default is nodebug.

dot Take a period on a line by itself during input from a terminal as end-of-file. Default is nodot.

EDITOR=shell-command

The command to run when the edit or ~e command is used. Default is ed(1).

escape=c

Substitute c for the ~ escape character. Takes effect with next message sent.

folder=directory

The directory for saving standard mail files. User-specified file names beginning with a plus (+) are expanded by preceding the file name with this directory name to obtain the real file name. If directory does not start with a slash (/), $HOME is prepended to it. In order to use the plus (+) construct on a mailx command line, folder must be an exported sh environment variable. There is no default for the folder variable. See also outfolder below.

header

Enable printing of the header summary when entering mailx. Enabled by default.

hold Preserve all messages that  are  read  in  the  mailbox
     instead of putting them in the standard mbox save file.
     Default is nohold.

ignore

Ignore interrupts while entering messages. Handy for noisy dial-up lines. Default is noignore.

ignoreeof

Ignore end-of-file during message input. Input must be terminated by a period (.) on a line by itself or by the ~. command. Default is noignoreeof. See also dot above.

keep When the mailbox is empty, truncate it to  zero  length
     instead of removing it.  Disabled by default.

keepsave

Keep messages that have been saved in other files in the mailbox instead of deleting them. Default is nokeepsave.

MBOX=filename

The name of the file to save messages which have been read. The xit command overrides this function, as does saving the message explicitly in another file. Default is $HOME/mbox.

metoo

If your login appears as a recipient, do not delete it from the list. Default is nometoo.

LISTER=shell-command

The command (and options) to use when listing the contents of the folder directory. The default is ls(1).

onehop

When responding to a message that was originally sent to several recipients, the other recipient addresses are normally forced to be relative to the originating author's machine for the response. This flag disables alteration of the recipients' addresses, improving efficiency in a network where all machines can send directly to all other machines (i.e., one hop away).

outfolder

Causes the files used to record outgoing messages to be located in the directory specified by the folder variable unless the path name is absolute. Default is nooutfolder. See folder above and the Save, Copy, followup, and Followup commands.

page Used with the pipe command to insert a form feed  after
     each message sent through the pipe.  Default is nopage.

PAGER=shell-command

The command to use as a filter for paginating output. This can also be used to specify the options to be used. Default is pg(1).

prompt=string

Set the command mode prompt to string. Default is ``? ''.

quiet

Refrain from printing the opening message and version when entering mailx. Default is noquiet.

record=filename

Record all outgoing mail in filename. Disabled by default. See also outfolder above. If you have the record and outfolder variables set but the folder variable not set, messages are saved in +filename instead of filename.

save Enable saving of messages in dead.letter  on  interrupt
     or  delivery error.  See DEAD for a description of this
     file.  Enabled by default.

screen=number

Sets the number of lines in a screen-full of headers for the headers command. It must be a positive number.

sendmail=shell-command

Alternate command for delivering messages. Default is /usr/bin/rmail.

sendwait

Wait for background mailer to finish before returning. Default is nosendwait.

SHELL=shell-command

The name of a preferred command interpreter. Default is sh(1).

showto

When displaying the header summary and the message is from you, print the recipient's name instead of the author's name.

sign=string

The variable inserted into the text of a message when the ~a (autograph) command is given. No default [see also ~i (TILDE ESCAPES)].

Sign=string

The variable inserted into the text of a message when the ~A command is given. No default [see also ~i (TILDE ESCAPES)].

toplines=number

The number of lines of header to print with the top command. Default is 5.

VISUAL=shell-command

The name of a preferred screen editor. Default is vi(1).

FILES

$HOME/.mailrc                      personal start-up file
$HOME/mbox                         secondary storage file
/var/mail/*                        post office directory
/usr/share/lib/mailx/mailx.help*   help message files
/etc/mail/mailx.rc                 optional global start-up file
/tmp/R[emqsx]*                     temporary files

SEE ALSO

ls(1), mail(1), pg(1).

NOTES

The -h and -r options can be used only if mailx is using a delivery program other than /usr/bin/rmail.

Where shell-command is shown as valid, arguments are not always allowed. Experimentation is recommended.

Internal variables imported from the execution environment cannot be unset.

The full internet addressing is not fully supported by mailx. The new standards need some time to settle down.

Attempts to send a message having a line consisting only of a ``.'' are treated as the end of the message by mail(1) (the standard mail delivery program).