File: CHANGELOG

package info (click to toggle)
gurgitate-mail 1.10.0-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, lenny, squeeze, wheezy
  • size: 252 kB
  • ctags: 250
  • sloc: ruby: 2,176; makefile: 11
file content (282 lines) | stat: -rw-r--r-- 8,882 bytes parent folder | download
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