#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
-require 'mailread'
exit 0 unless recipient = ARGV[0].match(/^([cm])-(\d+)-(.*)$/)
digest = message.digest
from = message.recipient
to = message.sender
+
+ message.update_attribute(:message_read, true)
end
exit 0 unless recipient[3] == digest[0,6]
-mail = Mail.new(STDIN)
+mail = Mail.new(STDIN.readlines.join)
+
+if mail.multipart?
+ body = mail.html_part || mail.text_part
+else
+ body = mail
+end
-message = Message.new(:sender => from, :recipient => to,
- :sent_on => Time.now.getutc,
- :title => mail["Subject"],
- :body => mail.body.map { |l| l.rstrip }.join("\n"))
+message = Message.new({
+ :sender => from,
+ :recipient => to,
+ :sent_on => mail.date.new_offset(0),
+ :title => mail.subject.sub(/\[OpenStreetMap\] */, ""),
+ :body => body.decoded
+}, :without_protection => true)
message.save!
-Notifier::deliver_message_notification(message)
+Notifier.message_notification(message).deliver
exit 0