diff options
-rwxr-xr-x | script/handle-mail-replies.rb | 4 | ||||
-rw-r--r-- | spec/script/handle-mail-replies_spec.rb | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/script/handle-mail-replies.rb b/script/handle-mail-replies.rb index f4ffb61f8..c05dca453 100755 --- a/script/handle-mail-replies.rb +++ b/script/handle-mail-replies.rb @@ -16,17 +16,19 @@ $alaveteli_dir = File.expand_path(File.join(File.dirname(__FILE__), '..')) $:.push(File.join($alaveteli_dir, "commonlib", "rblib")) load "config.rb" $:.push(File.join($alaveteli_dir, "lib")) +$:.push(File.join($alaveteli_dir, "lib", "mail_handler")) require "configuration" MySociety::Config.set_file(File.join($alaveteli_dir, 'config', 'general'), true) MySociety::Config.load_default require 'action_mailer' +require 'mail_handler' def main(in_test_mode) Dir.chdir($alaveteli_dir) do raw_message = $stdin.read begin - message = TMail::Mail.parse(raw_message) + message = MailHandler.mail_from_raw_email(raw_message, decode=false) rescue # Error parsing message. Just pass it on, to be on the safe side. forward_on(raw_message) unless in_test_mode diff --git a/spec/script/handle-mail-replies_spec.rb b/spec/script/handle-mail-replies_spec.rb index 406af9ee3..90a8de27c 100644 --- a/spec/script/handle-mail-replies_spec.rb +++ b/spec/script/handle-mail-replies_spec.rb @@ -5,7 +5,7 @@ def mail_reply_test(email_filename) Dir.chdir Rails.root do xc = ExternalCommand.new("script/handle-mail-replies", "--test") xc.run(load_file_fixture(email_filename)) - + xc.err.should == "" return xc end @@ -14,7 +14,7 @@ end describe "When filtering" do it "should not fail when not in test mode" do xc = ExternalCommand.new("script/handle-mail-replies") - xc.run(load_file_fixture("track-response-exim-bounce.email")) + xc.run(load_file_fixture("track-response-exim-bounce.email")) xc.err.should == "" end @@ -23,19 +23,19 @@ describe "When filtering" do r.status.should == 1 r.out.should == "user@example.com\n" end - + it "should detect a WebShield delivery error message" do r = mail_reply_test("track-response-webshield-bounce.email") r.status.should == 1 r.out.should == "failed.user@example.co.uk\n" end - + it "should detect a MS Exchange non-permanent delivery error message" do r = mail_reply_test("track-response-ms-bounce.email") r.status.should == 1 r.out.should == "" end - + it "should pass on a non-bounce message" do r = mail_reply_test("incoming-request-bad-uuencoding.email") r.status.should == 0 |