1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
|
1.10.0:
- Added support for MH mailboxes
1.9.1:
- 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
1.9.0:
- 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.
1.8.3:
- 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.
1.8.2:
- 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.
1.8.1:
- Whoops! Fixed a bug (thanks tchan!) in argument parsing that was causing
to parsing to break.
1.8.0:
- 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
1.7.2:
- Added gem support
1.7.1:
- Fixed Yet Another Header Parsing Bug[tm]
1.7.0:
- 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
respectively.
- 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
1.6.3:
- 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.
1.6.2:
- Fixed a bug introduced in the last code reorg, whereby it would forget to
default to saving mail to the spool
1.6.1:
- 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.
1.6.0:
- 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
milter.
1.5.3:
- Fixed a problem caused by me not touching filter in way too long:
there were namespace and parameter problems.
1.5.2:
- Made it not blow up when it encounters a header of the form
"To:\n emailaddress@example.com" (as seen in email messages from
the obscure Japanese email client Becky)
1.5.1:
- 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
1.5:
- 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
delete
end
end
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).
1.4.1:
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.
1.4:
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.
1.3:
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).
1.2.1:
- 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
1.2:
- Fixed some header handling which was kind of, er, broken.
Specifically, I'd get an exception on a header which looked
like:
Subject:
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
g=Gurgitate::Gurgitate.new(filehandle)
if g.head =~ /evil@bad.com/ then delete end
you can also say
Gurgitate::Gurgitate.new(filehandle) do
if head =~ /evil@bad.com/ then delete end
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.
1.1.3:
- 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".
1.1:
- 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_*.
1.0:
- Initial release of gurgitate-mail
|