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 restrictions are supported. New in version 3.9: - Took out specialization engine because there wasn't enough support to program in that style. - Offering 2 main versions now -- Date::Manip and Date::Parse - Added -R option, which causes grepmail to recurse any directories encountered. (Thanks to Emil Tiller for the initial code.) - Fixed a small bug that would cause some attachments not to be identified. New in version 3.8: - Added a prototype engine to allow users to specialize grepmail at installation time. (See below) - Fixed buggy mailbox detection algorithm - Fixed bug in identification of email headers. - Fixed bug in parsing timezones of emails. (Thanks to Wolfgang Weisselberg ) - Fixed bug in handling of date specifications like "2 days ago" and "2 weeks ago" - Added -M switch, which causes grepmail to ignore non-text attachments. - Added "quiet mode", -q switch, which supresses warnings about directories, non-mailbox ASCII files, binary files that can't be decompressed, etc. - Restructured code a bit. Moved file and STDIN processing out of main. The whole email is now read before the match is made to the body, instead of trying to match the pattern while reading the body. (This simplifies the algorithms and makes -M support a lot easier, at the cost of increasing the required memory slightly.) Now uses ungetc to put the test characters used during file type detection back on the stream. See the file CHANGES for a complete change history. INSTALLATION Two versions of grepmail are included in this distribution: - grepmail.DP uses Date::Parse, quick parsing engine. - grepmail.DM uses Date::Manip, a more flexible date parsing module that has better error checking than Date::Parse, but which causes grepmail to run about 60% slower. Date::Manip understands leap years and support date specifications like "2nd Thursday in July". - Just pick which one you like, and rename it to "grepmail" Please send any questions or suggestions you have. AUTHOR Written by David Coppit (david@coppit.org, http://coppit.org/) Send me email if you would like to be notified of updates. Please send me any modifications you make. (for the better, that is. :) I have a suite of tests that I can give you if you ask. Keep in mind that I'm likely to turn down obscure features to avoid including everything but the kitchen sink. 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/.