Sending the output of a command to someone via email

See www.elementkjournals.com/sun/9607/sun9672.htm for more info.

To redirect the output of a command to mail and also add some text to the body of that message, wrap multiple commands in parentheses like so:

(echo "Here's the text you want to add"; ls -l /)|mail name@address.com

This makes your text appear above the output of the ls command in this case.  Separate the commands with semi-colons or put the commands on separate lines.

(echo "Have look at these great files"
>ls -l /)|mail name@address.com

Here's another example that adds a subject line to the message:

(echo "Subject: Nifty tricks you can do with email"; echo "Here's the \
>body of the message.  Note the backslash at the end of the lines. \
>While you can just hit Enter and continue creating text for the body \
>of the message, the text will wrap at that point; the backslashes \
>prevent that, which may or may not be what you want."; ls -l /)| mail name@address.com

In the above example, backslashes keep newlines from appearing in the message when you hit the Enter key.  When I got the message in Outlook the text was wrapped in the proper places.  You could also just hit Enter right after 'echo " '.  For example:

(echo "Subject: Nifty email tricks"; echo "
>This is the body of the message.  The advantage of doing it this way
>is that the message will be formatted roughly the same as you type
>it, with the recipient seeing the wrap in the same place you put it.")|
>mail name@address.com

Note in the above example that the opening quote mark after the 'echo' must be on the same line as the word 'echo'.  In other words,

'echo "
...'

works but

'echo
"...'

does not.

You may also want to put the closing quote on its own separate line to provide a blank line between the message and the command output that follows.