119

The program is located in /usr/bin/mail. Upon execution, Version 8.1.2 01/15/2001 is shown.

Entering list produces:

Commands are:
next, alias, print, type, Type, Print, visual, top, touch, preserve, 
delete, dp, dt, undelete, unset, mail, mbox, pipe, |, more, page, More, 
Page, unread, Unread, !, copy, chdir, cd, save, source, set, shell, 
version, group, write, from, file, folder, folders, ?, z, headers, 
help, =, Reply, Respond, reply, respond, edit, echo, quit, list, xit, 
exit, size, hold, if, else, endif, alternates, ignore, discard, retain, 
saveignore, savediscard, saveretain, core, #, inc, new

Entering ? produces:

Mail Command               Description
-------------------------  --------------------------------------------
t [message list]           type message(s).
n                          goto and type next message.
e [message list]           edit message(s).
f [message list]           give head lines of messages.
d [message list]           delete message(s).
s [message list] <file>    append message(s) to file.
u [message list]           undelete message(s).
R [message list]           reply to message sender(s).
r [message list]           reply to message sender(s) and all recipients.
p [message list]           print message list.
pre [message list]         make messages go back to /var/mail.
m <recipient list>         mail to specific recipient(s).
q                          quit, saving unresolved messages in mbox.
x                          quit, do not remove system mailbox.
h                          print out active message headers.
!                          shell escape.
| [msglist] command        pipe message(s) to shell command.
pi [msglist] command       pipe message(s) to shell command.
cd [directory]             chdir to directory or home if none given
fi <file>                  switch to file (%=system inbox, %user=user's
                           system inbox).  + searches in your folder
                           directory for the file.
set variable[=value]       set Mail variable.

Entering z shows the end of the list of messages - but that command is not presented in the ? help page.

  1. What program is this?
  2. Are there tutorials for its use?
  3. What are some common commands and helpful tricks for its use?
  4. How can the message list be navigated (the opposite of z) or refreshed?

Clarification: This question is about the interactive program and not the script-able command - i.e. the result of typing mail with no flags or parameters into a terminal.

cwd
  • 45,389
  • Actually, z is in the first list of commands, near the end of the fourth line (fifth counting "Commands are:"). – jwodder Dec 14 '11 at 03:15
  • hmm, cool. What is the opposite of z then? It's not a and I couldn't figure it out :) – cwd Dec 14 '11 at 04:07
  • Thanks for bolding #3. Damn thing is impossible to find in a 30 second google search. You'd think the most basic functionality would be the first thing mentioned. – paulwal222 Aug 07 '16 at 11:09
  • 2
    The commands I was looking for were f* to re list all the subject lines, d* to delete all the mail, and q to quit. To read the mail, I just keep hitting enter. – ntc2 Sep 13 '16 at 17:32

3 Answers3

94

This page describes the interactive command in detail, and is in fact a fairly thorough tutorial. Describes commands such as z and z- :

If there is more than a screenful of messages, then z will
show the next screenful, and z- will show the previous screenful.
Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232
Steve Brown
  • 2,093
5

mail isn't Pine; it's just mail. In a perfect world, your version of mail should be compatible with POSIX/SUS's mailx program (The most relevant documentation being under the "Extended Description" heading), but, as usual, determining the deviations from perfection is left as an exercise to the reader.

jwodder
  • 448
3

As its manual states, mail is:

mail is an intelligent mail processing system which has a command syntax reminiscent of ed(1) with lines replaced by messages.

That is to say, you could think of it as a quick way to perform some tasks related to the mails you receive in the server you are working on.

The power of mail can be understood when writing shell scripts or cron jobs for example.

To learn it better, I've found some articles about mail command:

Another question made on this site deals with the same issue:

nozimica
  • 884
  • 8
  • 24
  • Sorry, I tried to write the question so it would be clear that I'm not asking about the scripting properties of the command as much as I'm asking about the interactive ones - i.e. just typing mail with no parameters. – cwd Dec 14 '11 at 01:30
  • 2
    you filtered the key line from the mail man page. This fact had escaped me. After then looking at ed's man page I was able to navigate more easily, albeit still with some difficulty. $ goes to the most recent message, typing a number jumps directly to that message, - goes backward, + or n goes forward (but p does not go backwards) – Paul Aug 13 '14 at 13:12