tnef - Man Page

decode Microsoft's Transport Neutral Encapsulation Format

Synopsis

tnef [options] [FILE]

tnef {--help | --version}

Description

This manual page documents the tnef filter. tnef decodes e-mail attachments encoded in Microsoft's Transport Neutral Encapsulation Format (hereafter, TNEF), which "wraps" Microsoft e-mail attachments.

Unfortunately, these "wrapped" attachments are inaccessible to any e-mail client that does not understand TNEF. Fortunately, the tnef filter can be used by any MIME-aware client to unpack these attachments.

Options

-f FILE,  --file=FILE

use FILE as input ('-' denotes stdin). When this option is omitted, tnef reads data from stdin.

-C DIR,  --directory=DIR

unpack file attachments into DIR.

-x SIZE, --maxsize=SIZE

limit maximum size of extracted archive (bytes)

-t,  --list

list attached files, do not extract. For each file in the datafile the file name and full path will be printed.

If the verbose option is also provided then this option acts as the --list-with-mime-types option and also prints the file length (in bytes) and the date of the file before the other data.

--list-with-mime-types

same as list option but also prints MIME type and content ID of each file after filename and file path.

-w,  --interactive,  --confirmation

ask for confirmation for every action.

--overwrite

when extracting attachments, overwrite existing files.

--number-backups

when extracting attachments, if file FOO will be overwritten, create FOO.n instead.

--use-paths

honor file pathnames specified in the TNEF attachment. For security reasons, paths to attached files are ignored by default.

--save-body FILE

Save message body data found in the TNEF data. By default tnef only extracts the attached files and not the message body.

There can be up to three message bodies in the file, plain text, HTML encoded, and RTF encoded. Which are saved is specified by the --body-pref option. By default the message bodies are written to a file named message with an extension based upon the type (txt, html, rtf).

--body-pref PREF

Specifies which of the possibly three message body formats will be saved. PREF can be up to three characters long and each character must be one of 'r', 'h', or 't' specifying RTF, HTML or text. The order is the order that the data will be checked, the first type found will be saved. If PREF is the special value of 'all' then any and all message body data found will be saved. The default is 'rht'.

--save-rtf FILE

DEPRECATED. Equivalent to --save-body=FILE --body-pref=r

-h,  --help

show usage message.

-V,  --version

display version and copyright.

-v,  --verbose

produce verbose output.

--debug

enable debug output. (This will produce a very large amount of output.)

Known Limitations

tnef ignores the OEMCodePage data in the data file. It assumes Unicode data.

Example

The following example demonstrates typical tnef usage with a popular Unix mail client called "mutt".

Step 1 — Configure ~/.mailcap

Mutt can't use tnef for its intended purpose until an appropriate content type definition exists in ~/.mailcap. Here's a sample definition:

application/ms-tnef; tnef -w %s

This mailcap entry says that whenever the MIME content type:

application/ms-tnef

is encountered, use this command to decode it:

tnef -w %s

The latter command string invokes tnef, specifying both the -w option and the attachment (created as a temporary file) as command line arguments.

Step 2 — Add The Filter To $PATH

Mutt can't invoke tnef if the filter isn't accessible via $PATH.

Step 3 — Test Mutt

Use mutt to read a message that includes a TNEF attachment. Mutt will note that an attachment of type "application/ms-tnef is unsupported".

Press the "v" key to open mutt's "view attachment" menu.

Move the cursor over the TNEF attachment and press the enter key to "view" the attachment. Mutt will launch tnef and invoke it using the command line syntax specified in ~/.mailcap (step 1). tnef then decodes all file(s) included in the TNEF attachment, prompting for confirmation prior to creating an individual file (refer to -w option above). -w is useful here because it gives the end user a chance to view the filename(s) included in the mail message.

Note that Mutt's attachment menu also supports a pipe option, which permits the user to pipe attachments to an external filter (how convenient). So, to list the contents of a TNEF attachment prior to decoding it, press the "|" key and enter this command:

tnef -t

See Also

metamail(1), mailcap(4), mutt(1), other email clients.

Author

Mark Simpson <verdammelt@gmail.com>

Reporting Bugs

Please report issues via this project's issue tracker on GitHub: https://github.com/verdammelt/tnef/issues

Other References

This web page:

https://www.dwheeler.com/essays/microsoft-outlook-tnef.html

describes how to configure Microsoft email clients so that the TNEF format is disabled when sending messages to non-TNEF-compatible clients.