You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mblaze/man/mshow.1

211 lines
4.1 KiB
Groff

.Dd January 17, 2021
8 years ago
.Dt MSHOW 1
.Os
.Sh NAME
.Nm mshow
.Nd render messages and extract MIME parts
8 years ago
.Sh SYNOPSIS
.Nm
.Op Fl h Ar headers
.Op Fl A Ar mimetypes
.Op Fl nqrBFHLN
8 years ago
.Op Ar msgs\ ...
.Nm
.Fl x Ar msg
.Ar parts\ ...
.Nm
.Fl O Ar msg
.Ar parts\ ...
.Nm
.Fl t
.Ar msgs\ ...
.Nm
.Fl R
.Ar msg
.Sh DESCRIPTION
.Nm
renders the specified
.Ar msgs
to the standard output, by default.
.Po
8 years ago
See
.Xr mmsg 7
8 years ago
for the message argument syntax.
.Pc
If used interactively and no
.Ar msgs
are specified,
.Nm
displays the current message using colorization and a pager.
8 years ago
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl h Ar headers
Display the headers in the colon-separated list
.Ar headers ,
8 years ago
instead of the default headers
.Sq Li from\&:subject\&:to\&:cc\&:date\&:reply\&-to\&: .
.It Fl A Ar mimetypes
Define
.Sq Li "multipart/alternative"
preference.
.Ar mimetypes
is a colon-separated list of
MIME types which will be preferred,
in the order given,
when rendering
.Sq Li "multipart/alternative"
parts.
If no MIME type matches, the first MIME part will be rendered.
.Pp
When
.Ar mimetypes
is
.Sq Li all ,
.Nm
will render all parts of a
.Sq Li "multipart/alternative"
part.
.Pp
Defaults to
.Sq Li "text/plain:text/html" .
.It Fl n
Don't update the current message link.
8 years ago
.It Fl q
Don't render the body, stop after header output.
.It Fl r
Don't render the body, print raw body.
This may be dangerous to use on a tty.
.It Fl B
Decode encoded-words also in MIME parameters in direct violation
of RFC 2047.
This is useful if the attachment names look like
.Sq Li =?UTF-8?Q?stuff?= .
.It Fl F
Don't apply filters to MIME parts.
8 years ago
.It Fl H
Don't decode the headers, print all raw headers.
This may be dangerous to use on a tty.
8 years ago
.It Fl L
Don't filter the headers, print all decoded headers.
.It Fl N
Don't show MIME structure markers.
8 years ago
.It Fl x Ar msg
Switch to extraction mode: extract
.Ar parts
from the message
.Ar msg
into files.
.Ar parts
can be specified by number, filename or
.Xr fnmatch 3
pattern.
If no
.Ar parts
are specified, extracts all attachments with a filename.
8 years ago
.It Fl O Ar msg
Like
.Fl x
but write to standard output.
This may be dangerous to use on a tty.
When used together with
.Fl r ,
the whole part is raw,
that is,
un-decoded and including MIME part headers.
8 years ago
.It Fl t
Switch to list mode: list all MIME parts
of each
.Ar msg .
.It Fl R Ar msg
Render the text parts from
.Ar msg ,
suitable for use in a reply.
.El
.Sh FILTERS
.Nm ,
by default, decodes all
8 years ago
.Sq Li text/* ,
.Sq Li message/rfc822
and
8 years ago
.Sq Li multipart/*
parts,
and re-encodes them into UTF-8 if necessary.
.Pp
Other filters can be specified in the file
.Pa ${MBLAZE:-$HOME/.mblaze}/filter
.Po
or via
.Ev MAILFILTER
.Pc ,
in the format:
.Pp
8 years ago
.D1 Ar type/subtype Ns Li \&: Ar command
or
.D1 Ar type Ns Li \&: Ar command
.Pp
8 years ago
.Nm
will then spawn a pipe to
.Ar command ,
write the MIME part
to standard input
8 years ago
and display the output.
The environment variable
.Ev PIPE_CHARSET
will be set to the charset declared in the MIME part,
if known.
.Pp
Filters can communicate with
.Nm
using their exit status:
.Bl -tag -compact -width 8n
.It 0
The output is printed as plain text.
.It 62
The output is printed raw, without escaping.
.It 63
Behave as if the filter never ran.
.It 64
The output is an RFC 5322 message that should be rendered again.
.It 65 to 80
Render the
.Va n Ns \&- Ns 64th
part of this text/multipart part.
.El
All other exit statuses are regarded as errors.
.Sh ENVIRONMENT
.Bl -tag -width MBLAZE_NOCOLOR
.It Ev MAILFILTER
Path to an alternative
.Pa filter
file.
.It Ev MBLAZE_NOCOLOR
If non-empty,
.Nm
will not spawn a colorization filter.
.It Ev MBLAZE_PAGER
Any non-empty value of the environment variable
.Ev MBLAZE_PAGER
is used instead of the standard pagination program, specified in
.Ev PAGER .
When empty or set to
.Sq Ic cat ,
no pager is spawned.
.El
8 years ago
.Sh EXIT STATUS
.Ex -std
.Sh SEE ALSO
.Xr mmsg 7
8 years ago
.Sh AUTHORS
7 years ago
.An Leah Neukirchen Aq Mt leah@vuxu.org
8 years ago
.Sh LICENSE
.Nm
is in the public domain.
.Pp
To the extent possible under law,
the creator of this work
has waived all copyright and related or
neighboring rights to this work.
.Pp
.Lk http://creativecommons.org/publicdomain/zero/1.0/