grepmail - search mailboxes for a particular email

Grepmail searches a normal, gzip'd, bzip'd, or tzip'd mailbox for a given
regular expression, and returns those emails that match it. Piped input is
allowed, and date and size restrictions are supported.

New in version 4.51:
- Fixed a bug in attachment boundary matching which would cause the boundary
  match to fail if the boundary contained special pattern matching characters.
  (Thanks to Richard Everson for identifying the bug, and providing a sample
  email which demonstrates the problem.)
- Fixed a bug where grepmail would fail to print matching emails which had
  signatures, and added a test case for it. This bug was introduced with -B
  support in version 4.49.  (A *huge* thanks to Moritz Barsnick for reporting
  the bug and doing the initial analysis of the cause.)
- grepmail now dies gracefully when invalid patterns like "strcpy(" are
  supplied. (It should be "strcpy\(".)
- Added a check for Inline 0.41 or better during "perl Makefile.PL" when
  Mail::Folder::FastReader is selected to be installed. (Thanks to Brian L.
  Johnson for the problem report.)
- Modified Makefile.PL to ask whether the user wants FastReader regardless of
  whether they specified arguments to "make Makefile.PL".
- Modified Makefile.PL to allow the user to interactively specify the
  installation path.
- Fixed a typo in debugging output for emails without "Date:" headers.
- Improved error messages.
- Usage message now displays just the flags, --help shows a summary of their
  meanings as well.


MODULE DEPENDENCIES

grepmail, by itself, can search mailboxes based on regular expression
patterns. However, if you want to search based on date, the
Date::Parse module is required. If you want to use more complex date
specifications, then Date::Manip should be installed as well.

Starting with version 4.44, an additional module is distributed with
grepmail, called Mail::Folder::FastReader. It implements the email
reading capability in C for 10-20% faster execution, depending on your
system. This module is compiled and installed during the installation
of grepmail (see below). You will need Inline version 0.41 or better.

The Date::Parse module is part of the TimeDate distribution, which can be
downloaded from:

  http://www.perl.com/CPAN/authors/id/GBARR/

Date::Manip is at:

  http://www.perl.com/CPAN/authors/id/SBECK/

Alternatively, installation can be done automatically using the CPAN module:

  perl -MCPAN -e 'install Date::Parse'
  perl -MCPAN -e 'install Date::Manip'


INSTALLATION

=> On Non-Windows systems:

  % perl Makefile.PL
  [Choose whether or not to use Mail::Folder::FastReader.]
  % make
  % make test
  % make install

If make test fails, please run

  make testfunc

and see which test(s) are failing. Please email the output of running
the particular test with the -D flag (e.g.:

  blib/script/grepmail library -D -d "before July 9 1998" t/mailarc-1.txt

to the address below.

If you see errors about your timezone, and you are in an uncommon timezone, it
may be the case that Date::Manip does not support your timezone yet. Try this:

  perl -MDate::Manip -e 'print "TIMEZONE: ".&Date::Manip::Date_TimeZone."\n"'

If you get an error, contact the author of Date::Manip.

=> On Windows systems:

- Just copy "grepmail" to a place in your path


DOCUMENTATION

"perldoc grepmail"


HOMEPAGE

Visit http://grepmail.sourceforge.net/ for the latest version, mailing lists,
discussion forums, CVS access, and more.


REPORTING BUGS

You can report bugs at http://sourceforge.net/bugs/?group_id=2207. If the test
suite is failing, please attach the .stdout and .stderr files for the test
case(s), which are located in t/results. If this is a bug not in the test suite,
please attach the output of running grepmail with the -D switch.

NOTE: If you get a warning which says "Use of uninitialized value in pattern
match (m//)", check your version of Perl (perl -v). If you're using version
5.6.0, you will need to upgrade.


PRIMARY AUTHOR

Written by David Coppit (david@coppit.org, http://coppit.org/)


LICENSE

This code is distributed under the GNU General Public License (GPL). See
http://www.opensource.org/gpl-license.html and http://www.opensource.org/.
