Fetching contributors…
Cannot retrieve contributors at this time
324 lines (210 sloc) 9.32 KB
- Fixed a warning issued by obsolete Ruby usage in mail delivery
- Fixed a source of some exceptions in message-processing.
- Fixed some more text encoding issues in the input
- Fixed text encoding issues in the source code
- Took care of a bunch of warnings from Ruby 1.9.3.
- Added support for rubygem-testers, which involved a bit of a refactor
of the build.
- Additional fix for mh-sequences bugs.
- Fix for hanging-on-locked-mh-sequences bug
- Bug fix to fix more crashes on not-quite-well-formed mail
- Bug fix to fix crashes on not-quite-well-formed mail
- Added support for MH mailboxes
- Made a bunch of little changes to ensure that gurgitate-mail is compatible
with Ruby 1.9.0 (whilst not sacrificing compatibility with Ruby 1.8.x)
- Added the unit tests to the tarball for those who are curious
- Added the ability to create new Gurgitate::Mailmessage objects with the
"create" constructor--instead of giving it the text of a message to
parse, you give it headers as a hash and it puts the mail message together.
- Added an "exit 75 (TEMPFAIL)" for when it tries its best to deliver a mail
message anywhere at all and fails no matter how hard it tries. With a
sensible MTA, this should result in the message being requeued and
reprocessed later.
- Fixed a bug discovered by TheWordNerd where gurgitate was writing to
the default spool after every config file was processed, instead of
holding off until all of them had gone through.
- Whoops! Fixed a bug (thanks tchan!) in argument parsing that was causing
to parsing to break.
- Let you (only TEN FREAKIN' YEARS LATE) explicitly specify sender and
receivers on the command line.
- Added methods (sub and sub!) to HeaderBag to allow you to alter the contents
of headers
- Added gem support
- Fixed Yet Another Header Parsing Bug[tm]
- Changed it so that when you say "folderstyle Maildir", it changes the
default mail spool dir and mail spool file to $HOME and $HOME/Maildir
- Changed the way that config params work. Now instead of having to say:
self.sendmail = "/usr/sbin/sendmail"
you can say:
sendmail "/usr/sbin/sendmail"
Sort of in the style of attr_reader and attr_writer, or in the style
of some other programs' config files.
- Added -f option to select rules files from the command-line
- Restored Gurgitate::Gurgitate#process() with a block, which seemed to have
disappeared with the config file commotion.
- Added mention of the systemwide configuration files to the manual. Which,
by the way, could still use something of an overhaul. Way too much stuff
is still SEKRIT.
- Fixed a bug introduced in the last code reorg, whereby it would forget to
default to saving mail to the spool
- Fixed a bug introduced in the last code reorg, whereby it would forget to
default to saving mail to the spool
- Fixed file permissions in the tarball
- Fixed a really stupid bug with Maildir folder creation where it made invalid
mail directories.
- Added site-wide gurgitate-rules-file capability.
- Made it so that headers that start with a number pass through without
breaking stuff, which is a shame, because those are quite illegal as
far as I know.
- Also, headers with a . in the *header* name should pass though.
- ALSO, headers with a leading - in the header name, likewise.
- Fixed a (very minor) maildir-writing bug involving a misnamed variable, which
might trigger were gurgitate to be used as an LMTP process or a Sendmail
- Fixed a problem caused by me not touching filter in way too long:
there were namespace and parameter problems.
- Made it not blow up when it encounters a header of the form
"To:\n" (as seen in email messages from
the obscure Japanese email client Becky)
- Made it use Postfix's heuristic for determining whether a nonexistent
mailbox is a mail spool or a Maildir by looking for a slash on the end
of the mailbox's name.
- Added code from Bertram Scharpf to make error-in-rules handling
a little more graceful
- Made it not throw an exception on (illegal, mind) headers with
underscores in their names.
- Added a thing to the "filter" method so that you can say something like
filter("spamc") do
if headers["X-Spam"] =~ "Yes" then
if you want to.
- Also added the ability to put
folderstyle = Maildir
into your .gurgitate-rules.rb to tell it that if it doesn't find
a mailbox, it should create a Maildir mailbox rather than its
usual default (mbox).
I said I'd given up on minor changes? I lied.
- Had it assume that if a file isn't present, that it's a MBox mailbox,
and create it.
- Changed the constructor for Gurgitate to take all login information
from the effective UID instead of trusting the real UID and the
EUID to be the same.
I seem to have given up on minor changes. More big stuff.
- Changed the API! (WARNING WARNING WARNING) Now Message#to_s
returns the email message without the "From " line. You get that
with Message#to_mbox
- Broke the code into lots of little pieces instead of the one great
big file. I hope this makes it slightly easier for people to
understand--it certainly made it easier for me
- Added maildir delivery! Plus a sort of mechanism for delivering to
various kinds of mailboxes.
Some pretty big things here (in my opinion), so I figured it was
worth making it a 1.3 release instead of 1.2.2.
- Added the ability to say
headers["From", "Subject", "Cc"] =~ /hi there/
in your .gurgitate-rules, and have it do the right thing.
- Added "to" so you can now say
if to =~ /mailing-list/ then ...;end
instead of the cumbersome
if headers.matches(["To","Cc"],/mailing-list/) then ...; end
syntax which I just plain ol' hated.
- Made it possible to change the contents of headers.
- Made the man page not claim to be user-contributed Perl
documentation :-)
- Made it deal correctly with headers that have tabs between the colon
and the data, instead of spaces (bug #154).
- Made it NOT BLOW UP when you give it an email with a header that
has no contents. (Aren't those supposed to be illegal? Regardless,
I have to deal with whatever turns up, be it kosher or no)
- Made its installer also politely install a man page
- Fixed some header handling which was kind of, er, broken.
Specifically, I'd get an exception on a header which looked
Hi there
The only kind of email that I've ever seen this kind of header
on has been spam, but nonetheless, it's hardly fair for a mail
filter to blow up just because it's given crappy input.
- Made the comments more rdoc-friendly.
Fixed the handling of multi-line headers--it was getting it
RONG RONG RONG (but I've probably implemented this RONG RONG
RONG too).
- Made it so that as well as saying
if g.head =~ / then delete end
you can also say do
if head =~ / then delete end
Which gives you another place to put your .gurgitate-rules.
- Made install.rb work as both a script as a library, because
I switched to using rake to build things, rather than make.
- Made it canonicalize headers to a standard capitalization,
because some SMTP client (*cough*virus*cough*) is incorrectly
sending out all-uppercase headers.
- Put the whole thing into a big module, and added some extra
comments to make it more rdoc-friendly. You shouldn't need to
change your .gurgitate-rules.rb if you use it like that, but
if you use it as a module, you'll need to prefix 'Gurgitate::'
to your Gurgitate object construction.
1.1.2: maintenance release
- Changed gurgitate-mail so that it compiles cleanly under Ruby 1.8,
and made it work with no warnings.
1.1.1: maintenance release
- Fixed the regexes for my own email addresses--they had backslashes
in strange place, causing people to ask odd questions.
Fixed a typo (thanks to Tom Wadlow)--I was using an undefined
local variable "sendmail" instead of a class variable "@sendmail".
- Implemented Pavel Kolar's suggestion that if you filter email
through an external program, you might want the results of that,
instead of just a return code.
- Added a default value to the Gurgitate initializer parameter.
- Added an "install.rb" script to install the script and library
files into their proper locations.
- Pulled the "Gurgitate" class and friends out into a separate file,
and made "gurgitate-mail" into a tiny script which does a
"require" to pull the gurgitate-mail stuff in. This should make
it easier to extend in the future.
- Added this file to the distribution. :-)
1.0.1: maintenance release
- Small code cleanup--changed some accessors to use attr_*.
- Initial release of gurgitate-mail