def main if agent.message.multipart? size = 0 agent.message.body.each do |part| if part.body size += part.body.length end end else if agent.message.body size = agent.message.body.length else size = 0 end end agent.log(2, "Message from #{agent.header['From']} (#{size} bytes)") begin if size < 102400 agent.filter("crm -u /var/mail/crm/ mailreaver.crm") probability = agent.header['X-CRM114-Status'].sub(/[^0-9-]*(-?\d*\.?\d*)[^0-9]*/, '\1').to_f agent.log(2, "Spam probability: #{probability}") if agent.header['X-CRM114-Status'] =~ /SPAM/ agent.save(".Spam/") end end rescue RFilter::DeliveryAgent::DeliveryCommandFailure => exception agent.log(2, "Filter failed") agent.save("./") end agent.save("./") end