updated URLS
[attachcheck] / attachcheck
old mode 100644 (file)
new mode 100755 (executable)
index 8479dea..e633291
@@ -3,14 +3,24 @@
 # AttachCheck -- A MTA wrapper to help check outgoing email for
 # forgotten attachments.
 
-# (c) 2005 -- Benjamin Mako Hill <mako@bork.hampshire.edu>
-# Author/Software Homepage at: http://mako.cc
+# (c) 2004-2009 -- Benjamin Mako Hill <mako@atdot.cc>
+# Software Homepage at: http://mako.cc/projects/attachcheck
 
-# This software comes with ABSOLUTELY NO WARRANTY.
-# This is free software and is licensed under the GNU GPL.
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or (at
+# your option) any later version.
 
-__copyright__ = "Copyright (c) 2004 Benjamin Mako Hill"
-__author__ = "Benjamin Mako Hill <mako@debian.org>" 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+__copyright__ = "Copyright (c) 2004-2009 Benjamin Mako Hill"
+__author__ = "Benjamin Mako Hill <mako@atdot.cc>" 
 
 ### Configuration Options
 ###########################################
@@ -24,8 +34,11 @@ ignored_types = ( "applica/pgp-signat", "application/pgp-signature" )
 
 # list of regular expressions which we will view as being indicative
 # of an attachment
-attachment_regexes = [ r'\battach(ed|ment|ing)?\b(?im)' ]
+attachment_regexes = [ r'\battach(ed|ment|ing)?\b(?im)',
+                       r'\balleg(o|at[oaie]|ando)(?im)' ]
 
+# ignore quoted text (which might refer to attachments in previous emails)
+attachment_regexes = [ r'(^|^[^\n>].*)' + x for x in attachment_regexes ]
 
 ### No Edit Below This Line
 ###########################################
@@ -37,9 +50,19 @@ import re
 
 ## SUB: send message
 def send_message(): 
-    mailpipe = os.popen("%s -t" % sendmail, 'w')
+
+    global sendmail
+
+    # construct the sendmail pipe more safely (thanks iain murray!)
+    cmd = sys.argv[:]
+    cmd[0] = sendmail
+
+    from subprocess import Popen, PIPE
+    process = Popen(cmd, stdin=PIPE)
+    mailpipe = process.stdin
     mailpipe.write( message_string )
-    sys.exit( mailpipe.close() )
+    mailpipe.close()
+    sys.exit( process.wait() )
 
 ## SUB: print error message
 def print_error():

Benjamin Mako Hill || Want to submit a patch?