aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/request_mailer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/request_mailer.rb')
-rw-r--r--app/models/request_mailer.rb21
1 files changed, 14 insertions, 7 deletions
diff --git a/app/models/request_mailer.rb b/app/models/request_mailer.rb
index 5c5e33065..13bb5fdab 100644
--- a/app/models/request_mailer.rb
+++ b/app/models/request_mailer.rb
@@ -4,12 +4,13 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: request_mailer.rb,v 1.13 2008-01-02 15:45:00 francis Exp $
+# $Id: request_mailer.rb,v 1.14 2008-01-03 18:21:30 francis Exp $
class RequestMailer < ActionMailer::Base
def initial_request(info_request, outgoing_message)
@from = info_request.incoming_email
+ headers 'Sender' => info_request.envelope_email
@recipients = info_request.recipient_email
@subject = 'Freedom of Information Request - ' + info_request.title
@body = {:info_request => info_request, :outgoing_message => outgoing_message,
@@ -48,20 +49,26 @@ class RequestMailer < ActionMailer::Base
def receive(email, raw_email)
# Find which info requests the email is for
- info_requests = []
+ reply_info_requests = []
+ bounce_info_requests = []
for address in (email.to || []) + (email.cc || [])
- info_request = InfoRequest.find_by_incoming_email(address)
- info_requests.push(info_request) if info_request
+ reply_info_request = InfoRequest.find_by_incoming_email(address)
+ reply_info_requests.push(reply_info_request) if reply_info_request
+ bounce_info_request = InfoRequest.find_by_envelope_email(address)
+ bounce_info_requests.push(bounce_info_request) if bounce_info_request
end
# Nothing found
- if info_requests.size == 0
+ if reply_info_requests.size == 0 && bounce_info_requests.size == 0
RequestMailer.deliver_bounced_message(email)
end
# Send the message to each request
- for info_request in info_requests
- info_request.receive(email, raw_email)
+ for reply_info_request in reply_info_requests
+ reply_info_request.receive(email, raw_email, false)
+ end
+ for bounce_info_request in bounce_info_requests
+ bounce_info_request.receive(email, raw_email, true)
end
end