tnef man page

tnef — decode Microsoft's Transport Neutral Encapsulation Format


tnef [options] [FILE]

tnef {--help | --version}


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.


-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.

-w,  --interactive,  --confirmation

ask for confirmation for every action.


when extracting attachments, overwrite existing files.


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


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. 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.


enable debug output.


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:


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.


Mark Simpson.

Reporting Bugs

Report bugs to Mark Simpson <>

Other References

This web page:

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