Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TEXTMAIL(1)	       User Contributed Perl Documentation	     TEXTMAIL(1)

NAME
     textmail - mail filter to replace MS Word/HTML attachments with plain text

SYNOPSIS
      usage: textmail [options]
      options:
	-h	 - Print the help message then exit
	-m	 - Print the manpage then exit
	-w	 - Print the manpage in html format then exit
	-r	 - Print the manpage in nroff format then exit
	-M	 - Output in mailbox format (mboxrd)
	-T	 - Output in raw mail format (for smtp)
	-W	 - Don't replace MS Word attachments with text
	-E	 - Don't replace MS Excel attachments with csv
	-H	 - Don't replace HTML attachments with text
	-R	 - Don't replace RTF attachments with text
	-P	 - Don't replace PDF attachments with text
	-U	 - Don't translate winmail.dat attachments
	-L	 - Don't reduce appledouble attachments
	-I	 - Don't delete image attachments
	-A	 - Don't delete audio attachments
	-V	 - Don't delete video attachments
	-X	 - Don't delete MS Windows executable attachments
	-B	 - Don't recode text that was base64-encoded
	-S	 - Don't replace spaces in filenames with underscores
	-Z	 - Do translate signed content (discards signatures)
	-O	 - Delete all application/octet-stream attachments
	-!	 - Delete all application/* attachments
	-D hdrs  - Delete headers (list of header prefixes and filenames)
	-K types - Keep attachments (list of mimetypes and filenames)
	-f	 - On translation error, keep translation, not original
	-?	 - Print paths of helper applications then exit

DESCRIPTION
     textmail filters a mail message or mbox, replacing MS Word, MS Excel, HTML,
     RTF and PDF attachments with the plain text contained therein.  By default,
     the following attachments are also deleted: image, audio, video and MS Win-
     dows executables. MS "winmail.dat" attachments are replaced by any attach-
     ments contained therein which are then replaced by text or deleted in the
     same fashion. Any of these actions can be suppressed with the command line
     options. Mail headers can also be selectively deleted.

     This is useful for increasing the accessibility of mail messages (by reduc-
     ing their dependence on proprietary file formats), for dramatically reduc-
     ing their size (and the time it takes to download them and the time it
     takes to read them), and for dramatically reducing the risk of mail-borne
     viruses. Its intended use is as a preprocessor for mailing lists. This is
     more friendly than a strict "No Attachments" policy.

OPTIONS
     "-h"Print the help message then exit.

     "-m"Print the manpage then exit. This is equivalent to executing "man
	 textmail" but this works even when the manpage isn't installed.

     "-w"Print the manpage in html format then exit. This lets you install the
	 manpage in html format with a command like:

	   mkdir -p /usr/local/share/doc/textmail/html &&
	   textmail -w > /usr/local/share/doc/textmail/html/textmail.1.html

     "-r"Print the manpage in nroff format then exit. This lets you install the
	 manpage with a command like:

	   textmail -r > /usr/local/share/man/man1/textmail.1

     "-M"This option causes the output to be in mboxrd format by adding a mail-
	 box "From" line at the top if there isn't one already and ensures that
	 there is a blank line at the bottom of the output. It also performs
	 mailbox quoting on any lines in the body that look like mailbox "From"
	 headers. Use this when the output is to be stored directly in a mailbox
	 file. It is not necessary when textmail is being used as a mail filter
	 by procmail(1).

     "-T"This option causes the output to be in raw mail format by removing any
	 mailbox "From" line and by not performing mailbox quoting. Use this
	 when the output is to be sent directly to an SMTP server. It is not
	 necessary when textmail is being used as a mail filter by procmail(1).

     "-W"By default, textmail replaces MS Word attachments with inline plain
	 text attachments that contain just the plain text within the original
	 document.  This option leaves MS Word attachments intact.

     "-E"By default, textmail replaces MS Excel attachments with CSV file at-
	 tachments that contain just the data within the original document. This
	 option leaves MS Excel attachments intact.

     "-H"By default, textmail replaces HTML attachments with inline plain text
	 attachments that contain just the text within the original document. It
	 also reduces text-versus-html alternative attachments to just the text
	 attachment. This option leaves HTML (and alternative) attachments in-
	 tact.

     "-R"By default, textmail replaces RTF attachments with inline plain text
	 attachments that contain just the plain text within the original docu-
	 ment.	This option leaves RTF attachments intact.

     "-P"By default, textmail replaces PDF attachments with inline plain text
	 attachments that contain just the plain text within the original docu-
	 ment.	This option leaves PDF attachments intact.

     "-U"By default, textmail replaces MS TNEF (i.e. "winmail.dat") attachments
	 with the attachments contained therein which are then translated to
	 text as normal. This option leaves "winmail.dat" attachments intact.
	 This option, together with the "-!" option will cause winmail.dat at-
	 tachments to be deleted rather than translated.

     "-L"By default, textmail replaces "multipart/appledouble" attachments with
	 just the data fork attachment contained therein which is then trans-
	 lated to text as normal. This option leaves appledouble attachments in-
	 tact. However, the data fork attachment will still be translated as
	 normal resulting in a probably inappropriate and possibly broken re-
	 source fork attachment.  Therefore, this option should probably only be
	 used in conjunction with other options that suppress the translation of
	 the data fork attachment.

     "-I"By default, textmail deletes image attachments. This option leaves im-
	 age attachments intact.

     "-A"By default, textmail deletes audio attachments. This option leaves au-
	 dio attachments intact.

     "-V"By default, textmail deletes video attachments. This option leaves
	 video attachments intact.

     "-X"By default, textmail deletes attachments containing MS Windows executa-
	 bles. That means "application/octet-stream" attachments with the fol-
	 lowing filename extensions: "com", "exe", "pif", "dll", "ocx", "scr",
	 "vbs" and "js". This option leaves MS Windows executable attachments
	 intact. To delete "zip" files as well, you could use either the "-O"
	 option or the "-!" option.

     "-B"By default, when text is encountered that is "base64"-encoded, textmail
	 will recode it as either "7bit" or "quoted-printable", whichever is ap-
	 propriate. This option suppresses this recoding. Note that if the text
	 is large enough and contains a high enough proportion of non-ASCII
	 characters, it will remain "base64"-encoded to minimise space.

     "-S"When translating attachments, textmail replaces bad filename characters
	 such as space characters with the underscore character. This option
	 causes underscore characters to subsequently be converted into space
	 characters. In other words, you can use this option to preserve space
	 characters in attachment filenames (other bad filename characters will
	 then be converted to spaces as well).

     "-Z"By default, textmail will not translate "multipart/signed" attachments.
	 This option causes "multipart/signed" attachments to be replaced by the
	 signed attachment contained therein, discarding the signature control
	 data.	The no-longer-signed data is then translated to text as normal.
	 Note that "multipart/encrypted" attachments are never translated.

     "-O"Delete all "application/octet-stream" attachments, not just MS Windows
	 executables. Note that this overrides "-X" but "-K" overrides this.

     "-!"Delete all "application/*" attachments. Note that this overrides "-X"
	 but "-K" overrides this. Also note that translated documents are no
	 longer "application/*" attachments so they aren't deleted unless their
	 translation is suppressed with the appropriate command line option.

     "-D" hdrs
	 Delete particular headers. The hdrs argument is a comma separated list
	 of header name prefixes and/or the names of files containing header
	 name prefixes (blank lines, whitespace and shell style comments are ig-
	 nored). For example, "textmail -DX-" deletes all headers whose names
	 begin with "X-".

     "-K" types
	 By default, textmail deletes several types of non-text attachment. The
	 "-O" and "-!" options delete even more. This option specifies, by mime-
	 type and/or filename extension, a list of attachments not to delete.
	 This overrides all deletions.

	 The types argument is a comma separated list of mimetypes and/or file-
	 name extensions and/or the names of files containing mimetypes and/or
	 filename extensions (blank lines, whitespace and shell style comments
	 are ignored).	Note that the elements are interpreted as a complete
	 mimetype, if they contain a slash character, or as either the "*" in
	 "application/*" or as a filename extension if they do not contain a
	 slash character. For example, "textmail -Wf!Kdoc" deletes all "applica-
	 tion/*" attachments except MS Word documents.

     "-f"Whenever textmail is unable to translate any attachment into text, it
	 will leave the attachment intact. This happens when the requisite
	 translation software can't be found, when it runs but returns an error
	 code, and when it produces an empty file. It also happens when "win-
	 mail.dat" attachments are corrupt. This option causes the empty trans-
	 lation to take the place of the original attachment. Only the name of
	 the attachment is preserved. This is needed to ensure plain text even
	 in the face of an MS Word document that contains no text (e.g. only im-
	 ages).

     "-?"Print the paths of all helper applications then exit.

EXAMPLES
     A procmail(1) recipe that insists on pure text and no "X-" headers (with
     output in mailbox format):

       :0 fw
       | textmail -Mf!DX-

     Do the same but to an existing mailbox file:

       textmail -Mf!DX- < mailbox > mailbox-as-text

     Delete all "application/*" attachments except for PostScript and PDF (and
     don't translate PDF into text):

       textmail -!PKps,pdf

     Delete all "application/*" attachments except for zip files and gzipped tar
     files:

       textmail -!Ktar.gz,zip

     A procmail(1) recipe that just unpacks winmail.dat attachments but doesn't
     translate the attachments contained therein into text and doesn't delete
     windows executables (with output in mailbox format):

       :0 fw
       | textmail -MWEHRPLIAVXS

REQUIREMENTS
     MS Word and RTF documents are translated into plain text using antiword(1)
     or catdoc(1). If textmail can't find antiword(1) or catdoc(1), then MS Word
     and RTF attachments are left intact. So make sure that antiword(1) or cat-
     doc(1) is installed and in the $PATH.

     MS Excel documents are translated into csv files using xls2csv(1). If
     textmail can't find xls2csv(1), then MS Excel attachments are left intact.
     So make sure that xls2csv(1) is installed and in the $PATH.

     HTML documents are translated into plain text using lynx(1). If textmail
     can't find lynx(1), then HTML attachments are left intact. So make sure
     that lynx(1) is installed and in the $PATH.

     PDF documents are translated into plain text using pdftotext(1). If
     textmail can't find pdftotext(1), then PDF attachments are left intact. So
     make sure that pdftotext(1) is installed and in the $PATH.

     textmail also requires perl(1) and pod2man(1) and pod2html(1) (which come
     with perl(1)) and mktemp(1).

     If textmail fails to create a temporary directory, or if it is instructed
     to do nothing (i.e. "-WEHRPULIAVX"), then it degenerates into cat(1).

CAVEAT
     The latest version of xls2csv(1) at the time of writing (i.e.  cat-
     doc-0.93.3) loses data.

     If textmail is unable to create a temporary directory (in "/tmp"), then it
     degenerates into cat(1). Without a temporary directory, no attachments will
     be translated or deleted no matter what options (even "-f") were given to
     textmail. So make sure that "/tmp" is writable. Also make sure that mk-
     temp(1) is available otherwise an insecure temporary directory will be cre-
     ated.

SEE ALSO
     procmail(1), antiword(1), catdoc(1), xls2csv(1), lynx(1), pdftotext(1),
     pod2man(1), pod2html(1), "http://raf.org/minimail/"

AUTHOR
     20070803 raf <raf@raf.org>

URL
     "http://raf.org/textmail/"

perl v5.42.3			   2026-09-03			     TEXTMAIL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=textmail&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help