aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfrancis <francis>2008-09-04 12:44:07 +0000
committerfrancis <francis>2008-09-04 12:44:07 +0000
commitefa94a2957c2cc549b24cf66c22377d7fe2a624a (patch)
treec3aa40dbe0385861016ba41bad018b2f2990ed08
parent195a9742512cb71ed856a751052478721961739b (diff)
Hack to work round mail parsing problem in TMail.
-rw-r--r--app/models/incoming_message.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index 030a2c04a..cb6d740bb 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -19,7 +19,7 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: incoming_message.rb,v 1.142 2008-09-04 11:11:38 francis Exp $
+# $Id: incoming_message.rb,v 1.143 2008-09-04 12:44:07 francis Exp $
# TODO
# Move some of the (e.g. quoting) functions here into rblib, as they feel
@@ -182,7 +182,11 @@ class IncomingMessage < ActiveRecord::Base
# Documentation at http://i.loveruby.net/en/projects/tmail/doc/
def mail
if @mail.nil? && !self.raw_data.nil?
- @mail = TMail::Mail.parse(self.raw_data)
+ # Hack round bug in TMail's MIME decoding. Example request which provokes it:
+ # http://www.whatdotheyknow.com/request/reviews_of_unduly_lenient_senten#incoming-4830
+ copy_of_raw_data = self.raw_data.gsub(/; boundary=\s+"/ims,'; boundary="')
+
+ @mail = TMail::Mail.parse(copy_of_raw_data)
@mail.base64_decode
end
@mail